溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php怎么去除給定路徑的文件或目錄

發(fā)布時間:2021-08-23 17:06:23 來源:億速云 閱讀:155 作者:chen 欄目:編程語言

本篇內(nèi)容主要講解“php怎么去除給定路徑的文件或目錄”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“php怎么去除給定路徑的文件或目錄”吧!

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

一:刪除指定文件操作

刪除文件可以使用unlink($filename,$context)函數(shù),它可以刪除指定的文件$filename,可選參數(shù)$context用于規(guī)定文件句柄的環(huán)境。如果執(zhí)行成功時返回 TRUE,失敗時返回 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怎么去除給定路徑的文件或目錄

在重新打開目錄,看看文件,會發(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怎么去除給定路徑的文件或目錄

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

php怎么去除給定路徑的文件或目錄

如何想要刪除一個目錄中的全部文件,可以利用循環(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的時候,那么0!==false,仍然可以遍歷
		if ($file != "." && $file != ".." ) {
			$path = $dir . '/' . $file;
			if(is_dir($path)){
				continue;
			}
			unlink($path);
		}
	}
	echo '文件刪除成功!';
	closedir($info);
} 
?>

輸出結(jié)果為:

php怎么去除給定路徑的文件或目錄

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

php怎么去除給定路徑的文件或目錄

二:刪除指定目錄操作

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

需要注意的是:使用 rmdir() 函數(shù)刪除指定目錄時,這個目錄必須是空的,而且要有相應(yīng)的權(quán)限。如果刪除一個不為空的目錄還會產(chǎn)生一個 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 "目錄不存在!";
    }
?>

輸出結(jié)果為:

php怎么去除給定路徑的文件或目錄

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

php怎么去除給定路徑的文件或目錄

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

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

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

<?php
    function deldir($path){
        //如果是目錄則繼續(xù)
        if(is_dir($path)){
            //掃描一個文件夾內(nèi)的所有文件夾和文件并返回數(shù)組
            $p = scandir($path);
            //如果 $p 中有兩個以上的元素則說明當前 $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è)置需要刪除的文件夾
    $path = "D:/demo/";
    //調(diào)用函數(shù),傳入路徑
    deldir($path);
?>

到此,相信大家對“php怎么去除給定路徑的文件或目錄”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI