Heim >Backend-Entwicklung >PHP-Problem >PHP-Dateioperation: Dateien oder Verzeichnisse in einem bestimmten Pfad entfernen

PHP-Dateioperation: Dateien oder Verzeichnisse in einem bestimmten Pfad entfernen

青灯夜游
青灯夜游Original
2021-08-23 15:36:573042Durchsuche

Im vorherigen Artikel „php-Dateioperation: Extrahieren des Datei-/Verzeichnisnamens“ haben wir die Methode zum Abrufen des Namensteils der Datei/des Verzeichnisses kennengelernt. Dieses Mal setzen wir die PHP-Dateioperationsreihe fort und sprechen darüber, wie man bestimmte Dateien oder Verzeichnisse löscht. ~

Beim Bearbeiten von Dateien/Verzeichnissen können Sie nicht nur die Daten in den Dateien bearbeiten, sondern auch Arbeiten Sie an der Datei/dem Verzeichnis selbst (z. B. Löschen der Datei/des Verzeichnisses). Heute stellen wir Ihnen vor, wie Sie bestimmte Dateien oder Verzeichnisse löschen.

Eins: Vorgang „Angegebene Datei löschen“

Um eine Datei zu löschen, können Sie die Funktion unlink($filename,$context) verwenden, mit der die angegebene Datei $ gelöscht werden kann filename wird der optionale Parameter $context verwendet, um die Umgebung des Dateihandles anzugeben. Gibt TRUE zurück, wenn die Ausführung erfolgreich ist, und FALSE, wenn sie fehlschlägt. unlink($filename,$context)函数,它可以删除指定的文件$filename,可选参数$context用于规定文件句柄的环境。如果执行成功时返回 TRUE,失败时返回 FALSE。

下面通过具体代码示例来看看:

例1:删除同目录下的“test.txt”文件

PHP-Dateioperation: Dateien oder Verzeichnisse in einem bestimmten Pfad entfernen

<?php
header("content-type:text/html;charset=utf-8");
$file = &#39;test.txt&#39;;
if(file_exists($file)){
    if(unlink($file)){
        echo $file.&#39; 删除成功!&#39;;
    }else{
        echo $file.&#39; 删除失败!&#39;;
    }
}else{
    echo $file.&#39; 不存在!&#39;;
}
?>

输出结果为:

PHP-Dateioperation: Dateien oder Verzeichnisse in einem bestimmten Pfad entfernen

在重新打开目录,看看文件,会发现“test.txt”文件已经不存在了。

PHP-Dateioperation: Dateien oder Verzeichnisse in einem bestimmten Pfad entfernen

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

PHP-Dateioperation: Dateien oder Verzeichnisse in einem bestimmten Pfad entfernen

<?php
header("content-type:text/html;charset=utf-8");
$file = &#39;D:/demo/text.txt&#39;;
if(file_exists($file)){
    if(unlink($file)){
        echo $file.&#39; 删除成功!&#39;;
    }else{
        echo $file.&#39; 删除失败!&#39;;
    }
}else{
    echo $file.&#39; 不存在!&#39;;
}
?>

输出结果为:

PHP-Dateioperation: Dateien oder Verzeichnisse in einem bestimmten Pfad entfernen

在重新打开目录,看看文件,会发现“text.txt”文件已经不存在了。

PHP-Dateioperation: Dateien oder Verzeichnisse in einem bestimmten Pfad entfernen

如何想要删除一个目录中的全部文件,可以利用循环和readdir()获取D:demo目录下的全部文件和目录(不包括子目录),然后将其中的文件全部删除:

<?php
header("content-type:text/html;charset=utf-8");
$dir = &#39;D:/demo&#39;;
if (is_dir($dir)) {
	$info = opendir($dir);
	while (($file = readdir($info)) !== false) {//用不全等于是区分如果文件夹名字为0的时候,那么0!==false,仍然可以遍历
		if ($file != "." && $file != ".." ) {
			$path = $dir . &#39;/&#39; . $file;
			if(is_dir($path)){
				continue;
			}
			unlink($path);
		}
	}
	echo &#39;文件删除成功!&#39;;
	closedir($info);
} 
?>

输出结果为:

PHP-Dateioperation: Dateien oder Verzeichnisse in einem bestimmten Pfad entfernen

在重新打开目录,看看文件,会发现只剩下一个“img”文件夹还存在了。

PHP-Dateioperation: Dateien oder Verzeichnisse in einem bestimmten Pfad entfernen

二:删除指定目录操作

删除目录可以使用rmdir($dir,$context)

Werfen wir einen Blick auf die spezifischen Codebeispiele:

Beispiel 1: Löschen Sie die Datei „test.txt“ im selben Verzeichnis

PHP-Dateioperation: Dateien oder Verzeichnisse in einem bestimmten Pfad entfernen

<?php
	header("content-type:text/html;charset=utf-8");
    $dir = &#39;D:/demo/img&#39;;
    if(is_dir($dir)){
        if(rmdir($dir)) echo &#39;目录删除成功!&#39;;
    }else{
        echo "目录不存在!";
    }
?>

Das Ausgabeergebnis ist:

PHP-Dateioperation: Dateien oder Verzeichnisse in einem bestimmten Pfad entfernenPHP-Dateioperation: Dateien oder Verzeichnisse in einem bestimmten Pfad entfernen

Nachdem Sie das Verzeichnis erneut geöffnet und sich die Datei angesehen haben, werden Sie Folgendes finden: „test.txt“ Die Datei existiert nicht mehr.

PHP-Dateioperation: Dateien oder Verzeichnisse in einem bestimmten Pfad entfernenPHP-Dateioperation: Dateien oder Verzeichnisse in einem bestimmten Pfad entfernen

Beispiel 2: Löschen Sie die Datei „text.txt“ im D:demo-Verzeichnis

PHP-Dateioperation: Dateien oder Verzeichnisse in einem bestimmten Pfad entfernen

<?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.&#39;/&#39;);
                        }else{
                            //如果是文件直接删除
                            unlink($path.$val);
                        }
                    }
                }
            }
        }
        //删除目录
        return rmdir($path);
    }
    //设置需要删除的文件夹
    $path = "D:/demo/";
    //调用函数,传入路径
    deldir($path);
?>

Das Ausgabeergebnis ist:

PHP-Dateioperation: Dateien oder Verzeichnisse in einem bestimmten Pfad entfernen

Nachdem Sie das Verzeichnis erneut geöffnet und sich die Dateien angesehen haben, werden Sie feststellen, dass die Datei „text.txt“ nicht mehr existiert.

PHP-Dateioperation: Dateien oder Verzeichnisse in einem bestimmten Pfad entfernen

Wie Wenn Sie alle Dateien in einem Verzeichnis löschen möchten, können Sie Schleifen und readdir() verwenden, um alle Dateien und Verzeichnisse im D:demo-Verzeichnis (mit Ausnahme der Unterverzeichnisse) abzurufen und dann alle darin enthaltenen Dateien zu löschen:

rrreee Das Ausgabeergebnis ist: PHP-Dateioperation: Dateien oder Verzeichnisse in einem bestimmten Pfad entfernenat Öffnen Sie das Verzeichnis erneut und sehen Sie sich die Dateien an. Sie werden feststellen, dass nur noch ein „img“-Ordner vorhanden ist.

PHP-Dateioperation: Dateien oder Verzeichnisse in einem bestimmten Pfad entfernen🎜🎜🎜 🎜Zwei: Vorgang zum Löschen eines angegebenen Verzeichnisses🎜🎜🎜🎜Um ein Verzeichnis zu löschen, können Sie die Funktion rmdir($dir,$context) verwenden. $context ist ein weggelassener Parameter, der zur Angabe der Umgebung verwendet wird das Dateihandle. Gibt TRUE zurück, wenn die Ausführung erfolgreich ist, und FALSE, wenn sie fehlschlägt. 🎜🎜Es ist zu beachten, dass bei Verwendung der Funktion rmdir() zum Löschen eines angegebenen Verzeichnisses das Verzeichnis leer sein und über entsprechende Berechtigungen verfügen muss. Das Löschen eines Verzeichnisses, das nicht leer ist, führt ebenfalls zu einem Fehler der Stufe E_WERNING. 🎜🎜Werfen wir einen Blick auf das konkrete Codebeispiel: Löschen Sie das leere Verzeichnis „img“ im Verzeichnis D:demo 🎜rrreee🎜Das Ausgabeergebnis ist: 🎜🎜🎜🎜🎜Nachdem Sie das Verzeichnis erneut geöffnet und sich die Dateien angesehen haben, werden Sie Folgendes tun Finden Sie das leere Verzeichnis „img“ „Existiert nicht mehr. 🎜🎜🎜🎜🎜Aber in den meisten Fällen ist das Verzeichnis, das wir löschen müssen, nicht leer und enthält viele Unterdateien und Unterverzeichnisse. Wie können wir das angegebene Verzeichnis und seine Unterdateien und Verzeichnisse löschen? 🎜🎜🎜Spezifische Implementierungsmethode: Sie können alle Dateien und Ordner in diesem Verzeichnis durchlaufen und alle Dateien und Ordner in diesem Verzeichnis einzeln rekursiv löschen🎜🎜Der spezifische Implementierungscode ist unten angegeben:🎜rrreee🎜Okay, das ist alles Um mehr zu erfahren, klicken Sie hier. → →🎜Grundlegende Bedienung von PHP-Dateien🎜🎜🎜🎜Empfohlen:🎜"🎜Sammlung von PHP-Interviewfragen (Sammlung)🎜" "🎜php-Video-Tutorial🎜"🎜

Das obige ist der detaillierte Inhalt vonPHP-Dateioperation: Dateien oder Verzeichnisse in einem bestimmten Pfad entfernen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn