PHP-递归扫描目录和删除目录
生活随笔
收集整理的這篇文章主要介紹了
PHP-递归扫描目录和删除目录
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
(1) 通過遞歸掃描目錄并打印
需要注意的地方:
①在讀取目錄的時候,會讀取.和..,分別表示當前目錄和上一級目錄,需要過濾掉它們以進行后續的打印和操作。
②中文操作系統默認的編碼是gbk,因此目錄與文件的編碼為gbk。想要在網頁上顯示的時候沒有亂碼,需要通過iconv函數進行轉碼。
③這一份代碼是用無序列表來顯示目錄結構的。還有一種辦法:可以添加一個遞歸深度$deep作為函數的參數,默認為0,每一次遞歸加1。這樣不同的層級就擁有了不同的遞歸深度,通過str_repeat()函數來利用遞歸深度,就能讓目錄結構分出層次了。
(2) 通過遞歸刪除目錄及目錄下的文件
?
// php遞歸刪除目錄和文件 function delAll($path){// 打開目錄$dh = opendir($path);// 循環讀取目錄while(($file = readdir($dh)) !== false){// 過濾掉當前目錄'.'和上一級目錄'..'if($file == '.' || $file == '..') continue;// 如果該文件是一個目錄,則進入遞歸if(is_dir($path.'/'.$file)){delAll($path.'/'.$file);} else {// 如果不是一個目錄,則將其刪除unlink($path.'/'.$file);}}// 退出循環后(此時已經刪除所有了文件),關閉目錄并刪除closedir($dh);rmdir($path); } $path = './test'; delAll($path);?
需要注意的一點是:只有當這個目錄不是工作狀態的時候,才能進行刪除。所以必須要先通過closedir()關閉目錄,并且確保在計算機中也退出了該目錄,再進行刪除的操作。
?
轉載于:https://www.cnblogs.com/mozshaw/p/5372895.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的PHP-递归扫描目录和删除目录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 做梦梦到发卡是什么意思
- 下一篇: 《与mysql零距离接触》视屏学习笔记