中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP中刪除一個目錄的方法是什么

發布時間:2021-11-02 17:05:29 來源:億速云 閱讀:127 作者:iii 欄目:編程語言

這篇文章主要介紹“PHP中刪除一個目錄的方法是什么”,在日常操作中,相信很多人在PHP中刪除一個目錄的方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”PHP中刪除一個目錄的方法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

PHP中刪除一個目錄的方法是什么

rmdir()函數刪除空目錄

在我們的日常使用中,就會經常遇到需要進行刪除文件的操作,在PHP中想要刪除目錄也是非常簡單的,通過PHP中的rmdir函數就能夠實現,接下來我們看一下rmdir()函數的額基本語法格式:

rmdir(string $dirname[, resource $context])

其中需要注意的是:

使用rmdir()函數來進行刪除目錄的操作,有一個前提,那就是這個需要刪除的目錄一定要是的,如果刪除的目錄不是空的話可能會返回一個錯誤。參數$dirname表示的是要刪除的目錄路徑,參數$context是用來規定文件句柄的環境的,是一個可選參數。

接下來我們通過示例來看一下通過rmdir()函數來進行刪除目錄,示例如下:

<?php
    $dir = './test/demo';
    //判斷文件是否存在
    if(is_dir($dir)){
        if(rmdir($dir)) echo '目錄刪除成功';
    }else{
        echo "目錄不存在";
    }
?>

接著我們在上文中舉到的例子,我們創建了一個在該文件同級目錄下名為test的目錄,并且test內還有一個名為demo的目錄,上述示例中便是想要通過rmdir函數來刪除名為demo的目錄,其中需要注意的是,這個名為demo的目錄是空的目錄,所以輸出結果:

PHP中刪除一個目錄的方法是什么

PHP中刪除一個目錄的方法是什么

已經成功的刪除了這個名為demo的空目錄,我們已經實現了能夠刪除目錄,但是這個目錄只是空的目錄,如果這個目錄不是空的,會出現什么結果呢?在我們的日常使用中,一般想要刪除一個文件夾直接就能歐刪除了,可是要是通過PHP的話還只能刪除空的目錄,要是想要刪除一個大目錄那豈不是特別的麻煩。

接下來我們就來看一下如果這個目錄不是空的,輸出結果會有什么變化,我們將上述示例中的$dir = './test/demo';一個空的目錄換為一個不是空的目錄,來看一下會有什么變化,示例如下:

<?php
    $dir = 'C:\Users\Administrator\Desktop\1.0';
    //判斷文件是否存在
    if(is_dir($dir)){
        if(rmdir($dir)) echo '目錄刪除成功';
    }else{
        echo "目錄不存在";
    }
?>

輸出結果:

PHP中刪除一個目錄的方法是什么

由上述示例我們能夠發現,通過rmdir()函數來進行刪除不是空的目錄不行,程序會報錯。這樣的話我們怎樣才能夠實現刪除一個不為空的目錄呢?

rmdir()函數刪除非空目錄

上文章我們講到了rmdir只能夠刪除空目錄,面對非空目錄我們也并非束手無策。先理清思路逐個擊破。

首先我們需要進入到目錄中將目錄中的每一個文件都刪除掉,這時候我們需要使用unlink()函數,當這里面的文件都刪除了這不就是一個空目錄了嘛,在使用rmdir()函數刪除就好了。

但是,有些時候目錄中并不全是文件,目錄中也有目錄,而這個二階目錄內可能也會存在文件或者又一個目錄,這時候想要刪除掉這個非空目錄就需要用到遞歸的方法了。

思路整理好了之后就可以想一想可能會用到的函數:

首先我們還是得需要file_exists函數來判斷是否是目錄,然后我們再通過readdir()函數來以數組的形式獲取目錄內的所有文件名,如果返回的結果數量超過兩個說明當前目錄不為空,其中就會用到if語句。

下面我們通過示例來看一下怎樣實現刪除一個非空目錄,示例如下:

<?php
function delDir($directory) { // 自定義函數遞歸的函數整個目錄
    if (file_exists($directory)) { // 判斷目錄是否存在,如果不存在rmdir()函數會出錯
        if ($dir_handle = @opendir($directory)) { // 打開目錄返回目錄資源,并判斷是否成功
            while ($filename = readdir($dir_handle)) { // 遍歷目錄,讀出目錄中的文件或文件夾
                if ($filename != '.' && $filename != '..') { // 一定要排除兩個特殊的目錄
                    $subFile = $directory . "/" . $filename; //將目錄下的文件與當前目錄相連
                    // echo $subFile . "<br>";
                    if (is_dir($subFile)) { // 如果是目錄條件則成了
                        delDir($subFile); //遞歸調用自己刪除子目錄
                    } 
                    if (is_file($subFile)) { // 如果是文件條件則成立
                        unlink($subFile); //直接刪除這個文件
                    } 
                } 
            } 
            closedir($dir_handle); //關閉目錄資源
            rmdir($directory); //刪除空目錄
        } 
    } 
} 
delDir("./test"); //調用delDir函數
?>

上述示例中顯示通過file_exists來判斷目錄是否存在,然后遍歷目錄獨處目錄中的文件或者文件夾,這時候需要排除通過readdir返回的特殊的目錄,接上來就是按著上文中的想法進行各個擊破。

示例中想要刪除在本文件同級目錄中的一個名為“test”的目錄,

PHP中刪除一個目錄的方法是什么

運行程序之后:

PHP中刪除一個目錄的方法是什么

由此我們便完成了通過rmdir()函數來進行刪除非空目錄的操作了。

到此,關于“PHP中刪除一個目錄的方法是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

贵南县| 涿州市| 镇宁| 贡山| 东港市| 江城| 礼泉县| 信阳市| 鄂州市| 胶州市| 华安县| 贺兰县| 临泉县| 镇安县| 连云港市| 贡觉县| 岑巩县| 嘉义县| 天门市| 临潭县| 利辛县| 河池市| 宣武区| 长岭县| 长宁县| 云梦县| 红河县| 射洪县| 宁陕县| 江北区| 道孚县| 甘孜县| 花垣县| 肇东市| 游戏| 淄博市| 手机| 札达县| 佛教| 颍上县| 治县。|