php rmdir使用遞歸函數(shù)刪除非空目錄實(shí)例詳解
首先向大家介紹一下rmdir()函數(shù)。
php rmdir()函數(shù)
rmdir — 刪除空目錄
語(yǔ)法:
bool rmdir ( string $dirname [, resource $context ] )
嘗試刪除 dirname 所指定的目錄。 該目錄必須是空的,而且要有相應(yīng)的權(quán)限。 失敗時(shí)會(huì)產(chǎn)生一個(gè)E_WARNING級(jí)別的錯(cuò)誤。
參數(shù):
1.dirname:目錄的路徑。
2.context:在 PHP 5.0.0 中增加了對(duì)上下文(Context)的支持。
php rmdir()刪除非空目錄
上面已經(jīng)說(shuō)過(guò),rmdir()函數(shù)只能刪除空目錄,如果是非空目錄就需要先進(jìn)入到目錄中,使用unlink()函數(shù)將目錄中的每個(gè)文件都刪除掉,再回來(lái)將這個(gè)空目錄刪除。如果目錄中還存在子目錄,而且目錄也非空,就需要使用遞歸的方法。自定義遞歸函數(shù)刪除目錄的源代碼如下:
<?php function delDir($directory){//自定義函數(shù)遞歸的函數(shù)整個(gè)目錄 if(file_exists($directory)){//判斷目錄是否存在,如果不存在rmdir()函數(shù)會(huì)出錯(cuò) if($dir_handle=@opendir($directory)){//打開(kāi)目錄返回目錄資源,并判斷是否成功 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)方面考慮盡量不要去使用。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
PHP使用mkdir創(chuàng)建多級(jí)目錄的方法
這篇文章主要介紹了PHP使用mkdir創(chuàng)建多級(jí)目錄的方法,結(jié)合實(shí)例詳細(xì)分析了PHP中mkdir函數(shù)的使用技巧,需要的朋友可以參考下2015-12-12PHP 7.1中AES加解密方法mcrypt_module_open()的替換方案
這篇文章主要給大家介紹了關(guān)于PHP 7.1中AES加解密方法mcrypt_module_open()替換方案的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10使用Huagepage和PGO來(lái)提升PHP7的執(zhí)行性能
這篇文章主要介紹了使用Huagepage和PGO來(lái)提升PHP7的執(zhí)行性能的相關(guān)方案,來(lái)自于注明的PHP開(kāi)發(fā)組成員Laruence的相關(guān)研究,需要的朋友可以參考下2015-11-11php中自定義函數(shù)dump查看數(shù)組信息類似var_dump
本文為大家介紹下在php中自定義函數(shù)dump查看數(shù)組信息,具體示例如下,希望對(duì)大家有所幫助2014-01-01一個(gè)簡(jiǎn)單的php加密解密函數(shù)(動(dòng)態(tài)加密)
最近項(xiàng)目需要謝了一個(gè)簡(jiǎn)單的php加密解密函數(shù),把代碼貼出來(lái) 有什么不足的 大家指正2013-06-06PHP設(shè)置一邊執(zhí)行一邊輸出結(jié)果的代碼
這篇文章主要介紹了PHP中設(shè)置一邊執(zhí)行一邊輸出結(jié)果的實(shí)現(xiàn)代碼,需要的朋友可以參考下2013-09-09基于PHP實(shí)現(xiàn)堆排序原理及實(shí)例詳解
這篇文章主要介紹了基于PHP實(shí)現(xiàn)堆排序原理及實(shí)例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06php 刪除一維數(shù)組中某一個(gè)值元素的操作方法
下面小編就為大家分享一篇php 刪除一維數(shù)組中某一個(gè)值元素的操作方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02