您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關怎么在php中利用遞歸對目錄函數進行刪除,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
mkdir() — 新建目錄
– 語法:bool mkdir (string pathname [,int mode])
– 嘗試新建一個由 pathname 指定的目錄。
rmdir() — 刪除目錄
– 語法:bool rmdir ( string dirname )
– 嘗試刪除 dirname 所指定的目錄。 該目錄必須是空的,而且要有相應的權限。如果成功則返回 TRUE,失敗則返回
FALSE。
unlink — 刪除文件
– 語法:bool unlink ( string filename )
– 刪除 filename。和 Unix C 的 unlink() 函數相似。如果成功則返回 TRUE,失敗則返回 FALSE。
在PHP中,使用mkdir()函數只需要傳入一個目錄名即可很容易地建立一個新目錄。但刪除目錄所使用的函數rmdir(),只能刪除一個空目錄并且目錄必須存在。如果是非空的目錄就需要先進入到目錄中,使用unlink()函數將目錄中的每個文件都刪除掉,再回來將這個空目錄刪除。如果目錄中還存在目錄,而且子目錄也非空,就要使用遞歸的方法了。自定義遞歸函數刪除目錄的程序代碼如下所示:
<?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; //將目錄下的子文件和當前目錄相連 if(is_dir($subFile)) //如果為目錄則條件成立 delDir($subFile); //遞歸地調用自身函數,刪除子目錄 if(is_file($subFile)) //如果是文件則條件成立 unlink($subFile); //直接刪除這個文件 } } closedir($dir_handle); //關閉文件資源 rmdir($directory); //刪除空目錄 } } } dirDir("phpMyAdmin"); //調用delDir()函數,將程序所在目錄中的“phpMyAdmin”文件刪除 ?>
當然也可以通過調用操作系統命令“rm-rf”刪除非空的目錄,但也要從安全和跨平臺方面考慮盡量不要去使用。
上述就是小編為大家分享的怎么在php中利用遞歸對目錄函數進行刪除了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。