您好,登錄后才能下訂單哦!
本篇內容主要講解“php怎么去除給定路徑的文件或目錄”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“php怎么去除給定路徑的文件或目錄”吧!
在對文件/目錄進行操作時,不僅可以對文件中的數據進行操作,還可以對文件/目錄本身進行操作(例如刪除文件/目錄)。今天我們就來給大家介紹一下刪除指定文件或者目錄的方法。
一:刪除指定文件操作
刪除文件可以使用unlink($filename,$context)
函數,它可以刪除指定的文件$filename
,可選參數$context
用于規定文件句柄的環境。如果執行成功時返回 TRUE,失敗時返回 FALSE。
下面通過具體代碼示例來看看:
例1:刪除同目錄下的“test.txt”文件
<?php header("content-type:text/html;charset=utf-8"); $file = 'test.txt'; if(file_exists($file)){ if(unlink($file)){ echo $file.' 刪除成功!'; }else{ echo $file.' 刪除失敗!'; } }else{ echo $file.' 不存在!'; } ?>
輸出結果為:
在重新打開目錄,看看文件,會發現“test.txt”文件已經不存在了。
例2:刪除D:\demo目錄下的“text.txt”文件
<?php header("content-type:text/html;charset=utf-8"); $file = 'D:/demo/text.txt'; if(file_exists($file)){ if(unlink($file)){ echo $file.' 刪除成功!'; }else{ echo $file.' 刪除失敗!'; } }else{ echo $file.' 不存在!'; } ?>
輸出結果為:
在重新打開目錄,看看文件,會發現“text.txt”文件已經不存在了。
如何想要刪除一個目錄中的全部文件,可以利用循環和readdir()獲取D:\demo目錄下的全部文件和目錄(不包括子目錄),然后將其中的文件全部刪除:
<?php header("content-type:text/html;charset=utf-8"); $dir = 'D:/demo'; if (is_dir($dir)) { $info = opendir($dir); while (($file = readdir($info)) !== false) {//用不全等于是區分如果文件夾名字為0的時候,那么0!==false,仍然可以遍歷 if ($file != "." && $file != ".." ) { $path = $dir . '/' . $file; if(is_dir($path)){ continue; } unlink($path); } } echo '文件刪除成功!'; closedir($info); } ?>
輸出結果為:
在重新打開目錄,看看文件,會發現只剩下一個“img”文件夾還存在了。
二:刪除指定目錄操作
刪除目錄可以使用rmdir($dir,$context)
函數,$context是一個可省略的參數,用于規定文件句柄的環境。如果執行成功時返回 TRUE,失敗時返回 FALSE。
需要注意的是:使用 rmdir() 函數刪除指定目錄時,這個目錄必須是空的,而且要有相應的權限。如果刪除一個不為空的目錄還會產生一個 E_WERNING 級別的錯誤。
下面通過具體代碼示例來看看:刪除D:\demo目錄下的空目錄“img”
<?php header("content-type:text/html;charset=utf-8"); $dir = 'D:/demo/img'; if(is_dir($dir)){ if(rmdir($dir)) echo '目錄刪除成功!'; }else{ echo "目錄不存在!"; } ?>
輸出結果為:
在重新打開目錄,看看文件,會發現空目錄“img”不存在了。
但大部分情況下,我們需要刪除的目錄并不為空,里面又會包含很多子文件和子目錄,這要怎么操作才能刪除指定目錄及其子文件和目錄呢?
具體實現方法:可以遍歷這個目錄下的所有文件和文件夾,并用遞歸的方式來逐個刪除這個目錄下的所有文件和文件夾
下面給出具體的實現代碼:
<?php function deldir($path){ //如果是目錄則繼續 if(is_dir($path)){ //掃描一個文件夾內的所有文件夾和文件并返回數組 $p = scandir($path); //如果 $p 中有兩個以上的元素則說明當前 $path 不為空 if(count($p)>2){ foreach($p as $val){ //排除目錄中的.和.. if($val !="." && $val !=".."){ //如果是目錄則遞歸子目錄,繼續操作 if(is_dir($path.$val)){ //子目錄中操作刪除文件夾和文件 deldir($path.$val.'/'); }else{ //如果是文件直接刪除 unlink($path.$val); } } } } } //刪除目錄 return rmdir($path); } //設置需要刪除的文件夾 $path = "D:/demo/"; //調用函數,傳入路徑 deldir($path); ?>
到此,相信大家對“php怎么去除給定路徑的文件或目錄”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。