php 递归删除函数
2019獨角獸企業重金招聘Python工程師標準>>>
遞歸函數為自調用函數,在函數體內直接或間接自己調用自己,但需要設置自調用的條件,若滿足條件,則調用函數本身,若不滿足則終止本函數的自調用,然后把目前流程的主控權交回給上一層函數來執行。
? ?我們來看一個經典的遞歸刪除函數
? ?函數的作用:刪除目錄下面的所有文件,并刪除目錄
? ?函數代碼:
?<?php ? ?
?function deldir($dirname){ ? ?
? ? ?if(file_exists($dirname)){//首先判斷目錄是否有效 ? ?
? ? ? ? ?$dir = opendir($dirname);//用opendir打開目錄 ? ?
? ? ? ? ?while($filename = readdir($dir)){//使用readdir循環讀取目錄里的內容 ? ?
? ? ? ? ? if($filename != "." && $filename != ".."){//排除"."和".."這兩個特殊的目錄 ? ?
? ? ? ? ? ? ?$file = $dirname."/".$filename; ? ?
? ? ? ? ? ? ?if(is_dir($file)){//判斷是否是目錄,如果是則調用自身 ? ?
? ? ? ? ? ? ? ? ?deldir($file); //使用遞歸刪除子目錄 ? ? ?
? ? ? ? ? ? ?}else{ ? ?
? ? ? ? ? ? ? ?unlink($file);//刪除文件 ? ?
? ? ? ? ? ? ?} ? ?
? ? ? ? ? ?} ? ?
? ? ? ? ?} ? ?
? ? ? ? ? ? ?closedir($dir);//關閉文件操作句柄 ? ?
? ? ? ? ? ? ?rmdir($dirname);//刪除目錄 ? ?
? ? ?} ? ?
?} ? ?
??>?
? ?使用實例:Public是一個文件夾,里面有許多文件夾和文件,調用deldir($dirname)把它刪除
<?php ? ?
?$dir='Public';//傳入一個文件夾路徑 ? ?
?deldir($dir);//調用函數 ? ?
??>?
? ?說明:首先判斷Public是否存在,如果在則打開Public,然后使用readdir循環讀取Public目錄里的內容,如果存在"."和".."這兩個特殊目錄則排除掉。如果遇到文件夾則調用自身處理,直到條件不滿足。遇到文件則直接刪除掉。最后層層跳出刪除Public。
轉載于:https://my.oschina.net/guomingliang/blog/209573
總結
以上是生活随笔為你收集整理的php 递归删除函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css3整理--border-radiu
- 下一篇: WinsockExpert+NC抓包上传