溫馨提示×

溫馨提示×

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

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

php怎么刪除非空文件夾

發(fā)布時(shí)間:2021-03-19 13:46:13 來源:億速云 閱讀:337 作者:小新 欄目:編程語言

小編給大家分享一下php怎么刪除非空文件夾,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

php刪除非空文件夾的方法:首先使用unlink()函數(shù)將文件夾中的每個(gè)文件都刪除掉,語法格式“unlink(filename)”;然后使用rmdir()函數(shù)來刪除空文件夾即可,語法格式“rmdir(dir)”。

php rmdir()函數(shù)用于刪除空目錄,但如果要?jiǎng)h除非空目錄,我們必須將非空目錄中的文件或子目錄刪除,下面給大家介紹php刪除非空目錄的方法。

php rmdir()函數(shù)

rmdir — 刪除空目錄

語法:

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

嘗試刪除 dirname 所指定的目錄。 該目錄必須是空的,而且要有相應(yīng)的權(quán)限。 失敗時(shí)會(huì)產(chǎn)生一個(gè)E_WARNING級別的錯(cuò)誤。
參數(shù):

  • dirname:目錄的路徑。

  • context:在 PHP 5.0.0 中增加了對上下文(Context)的支持。

php rmdir()刪除非空目錄

上面已經(jīng)說過,rmdir()函數(shù)只能刪除空目錄,如果是非空目錄就需要先進(jìn)入到目錄中,使用unlink()函數(shù)將目錄中的每個(gè)文件都刪除掉,再回來將這個(gè)空目錄刪除。如果目錄中還存在子目錄,而且目錄也非空,就需要使用遞歸的方法。自定義遞歸函數(shù)刪除目錄的源代碼如下:

<?php
/* by http://www.manongjc.com/article/27.html*/
function delDir($directory){//自定義函數(shù)遞歸的函數(shù)整個(gè)目錄
    if(file_exists($directory)){//判斷目錄是否存在,如果不存在rmdir()函數(shù)會(huì)出錯(cuò)
        if($dir_handle=@opendir($directory)){//打開目錄返回目錄資源,并判斷是否成功
            while($filename=readdir($dir_handle)){//遍歷目錄,讀出目錄中的文件或文件夾
                if($filename!='.' && $filename!='..'){//一定要排除兩個(gè)特殊的目錄
                    $subFile=$directory."/".$filename;//將目錄下的文件與當(dāng)前目錄相連
                    if(is_dir($subFile)){//如果是目錄條件則成了
                        delDir($subFile);//遞歸調(diào)用自己刪除子目錄
                    }
                    if(is_file($subFile)){//如果是文件條件則成立
                        unlink($subFile);//直接刪除這個(gè)文件
                    }
                }
            }
            closedir($dir_handle);//關(guān)閉目錄資源
            rmdir($directory);//刪除空目錄
        }
    }
}

delDir("mydir");//調(diào)用delDir函數(shù)

?>

處理遞歸刪除非空目錄外,我們也可以使用操作系統(tǒng)命令“rm -rf”刪除非空的目錄,但也要從安全和跨平臺(tái)方面考慮盡量不要去使用。

看完了這篇文章,相信你對“php怎么刪除非空文件夾”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI