亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長(zhǎng)資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    php文件操作之去除給定路徑的文件或目錄

    在之前的文章《php文件操作之提取文件/目錄的名稱》中,我們了解了獲取文件/目錄的名稱部分的方法。這次我們繼續(xù)php文件操作系列的學(xué)習(xí),來聊聊怎么刪除指定文件或者目錄,感興趣的朋友可以學(xué)習(xí)了解一下~

    在對(duì)文件/目錄進(jìn)行操作時(shí),不僅可以對(duì)文件中的數(shù)據(jù)進(jìn)行操作,還可以對(duì)文件/目錄本身進(jìn)行操作(例如刪除文件/目錄)。今天我們就來給大家介紹一下刪除指定文件或者目錄的方法。

    一:刪除指定文件操作

    刪除文件可以使用unlink($filename,$context)函數(shù),它可以刪除指定的文件$filename,可選參數(shù)$context用于規(guī)定文件句柄的環(huán)境。如果執(zhí)行成功時(shí)返回 TRUE,失敗時(shí)返回 FALSE。

    下面通過具體代碼示例來看看:

    例1:刪除同目錄下的“test.txt”文件

    php文件操作之去除給定路徑的文件或目錄

    <?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.' 不存在!'; } ?>

    輸出結(jié)果為:

    php文件操作之去除給定路徑的文件或目錄

    在重新打開目錄,看看文件,會(huì)發(fā)現(xiàn)“test.txt”文件已經(jīng)不存在了。

    php文件操作之去除給定路徑的文件或目錄

    例2:刪除D:demo目錄下的“text.txt”文件

    php文件操作之去除給定路徑的文件或目錄

    <?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.' 不存在!'; } ?>

    輸出結(jié)果為:

    php文件操作之去除給定路徑的文件或目錄

    在重新打開目錄,看看文件,會(huì)發(fā)現(xiàn)“text.txt”文件已經(jīng)不存在了。

    php文件操作之去除給定路徑的文件或目錄

    如何想要?jiǎng)h除一個(gè)目錄中的全部文件,可以利用循環(huán)和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) {//用不全等于是區(qū)分如果文件夾名字為0的時(shí)候,那么0!==false,仍然可以遍歷 		if ($file != "." && $file != ".." ) { 			$path = $dir . '/' . $file; 			if(is_dir($path)){ 				continue; 			} 			unlink($path); 		} 	} 	echo '文件刪除成功!'; 	closedir($info); }  ?>

    輸出結(jié)果為:

    php文件操作之去除給定路徑的文件或目錄

    在重新打開目錄,看看文件,會(huì)發(fā)現(xiàn)只剩下一個(gè)“img”文件夾還存在了。

    php文件操作之去除給定路徑的文件或目錄

    二:刪除指定目錄操作

    刪除目錄可以使用rmdir($dir,$context)函數(shù),$context是一個(gè)可省略的參數(shù),用于規(guī)定文件句柄的環(huán)境。如果執(zhí)行成功時(shí)返回 TRUE,失敗時(shí)返回 FALSE。

    需要注意的是:使用 rmdir() 函數(shù)刪除指定目錄時(shí),這個(gè)目錄必須是空的,而且要有相應(yīng)的權(quán)限。如果刪除一個(gè)不為空的目錄還會(huì)產(chǎn)生一個(gè) E_WERNING 級(jí)別的錯(cuò)誤。

    下面通過具體代碼示例來看看:刪除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 "目錄不存在!";     } ?>

    輸出結(jié)果為:

    php文件操作之去除給定路徑的文件或目錄

    在重新打開目錄,看看文件,會(huì)發(fā)現(xiàn)空目錄“img”不存在了。

    php文件操作之去除給定路徑的文件或目錄

    但大部分情況下,我們需要?jiǎng)h除的目錄并不為空,里面又會(huì)包含很多子文件和子目錄,這要怎么操作才能刪除指定目錄及其子文件和目錄呢?

    具體實(shí)現(xiàn)方法:可以遍歷這個(gè)目錄下的所有文件和文件夾,并用遞歸的方式來逐個(gè)刪除這個(gè)目錄下的所有文件和文件夾

    下面給出具體的實(shí)現(xiàn)代碼:

    <?php     function deldir($path){         //如果是目錄則繼續(xù)         if(is_dir($path)){             //掃描一個(gè)文件夾內(nèi)的所有文件夾和文件并返回?cái)?shù)組             $p = scandir($path);             //如果 $p 中有兩個(gè)以上的元素則說明當(dāng)前 $path 不為空             if(count($p)>2){                 foreach($p as $val){                     //排除目錄中的.和..                     if($val !="." && $val !=".."){                         //如果是目錄則遞歸子目錄,繼續(xù)操作                         if(is_dir($path.$val)){                             //子目錄中操作刪除文件夾和文件                             deldir($path.$val.'/');                         }else{                             //如果是文件直接刪除                             unlink($path.$val);                         }                     }                 }             }         }         //刪除目錄         return rmdir($path);     }     //設(shè)置需要?jiǎng)h除的文件夾     $path = "D:/demo/";     //調(diào)用函數(shù),傳入路徑     deldir($path); ?>

    好了就說到這里了,有其他想知道的,可以點(diǎn)擊這個(gè)哦?!?→PHP文件基礎(chǔ)操作

    推薦:《PHP面試題大匯總(收藏)》《php視頻教程》

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)