Heim  >  Artikel  >  Backend-Entwicklung  >  So löschen Sie nicht leere Verzeichnisse mit PHP rmdir()

So löschen Sie nicht leere Verzeichnisse mit PHP rmdir()

青灯夜游
青灯夜游Original
2021-10-09 18:12:593849Durchsuche

Löschmethode: 1. Verwenden Sie die Funktion scandir() und die foreach-Anweisung, um alle Dateien und Ordner im angegebenen Verzeichnis zu durchlaufen. 2. Verwenden Sie die rekursive Methode, um alle Dateien und Ordner im angegebenen Verzeichnis einzeln zu löschen und das Verzeichnis in „Leer“ zu verwandeln 3. Verwenden Sie die Anweisung „rmdir (Verzeichnispfad)“, um das angegebene Verzeichnis zu löschen.

So löschen Sie nicht leere Verzeichnisse mit PHP rmdir()

Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 7.1, DELL G3-Computer

In PHP können Sie die Funktion rmdir() verwenden, um das angegebene Verzeichnis zu löschen wie folgt:

rmdir(string $dirname[, resource $context])

Unter diesen ist der Parameter $dirname der zu löschende Verzeichnispfad; $context ist ein optionaler Parameter, der zur Angabe der Umgebung des Dateihandles verwendet wird.

Hinweis: Wenn Sie die Funktion rmdir() zum Löschen eines angegebenen Verzeichnisses verwenden, muss das Verzeichnis leer sein und über entsprechende Berechtigungen verfügen. TRUE wird zurückgegeben, wenn die Funktion erfolgreich ausgeführt wurde, und FALSE wird zurückgegeben, wenn die Ausführung fehlschlägt. Wenn ein nicht leeres Verzeichnis gelöscht wird, wird ein Fehler der Ebene E_WERNING generiert.

Was sollten Sie also tun, wenn Sie rmdir() verwenden müssen, um ein nicht leeres Verzeichnis zu löschen?

Wir können alle Dateien und Ordner in diesem Verzeichnis durchlaufen und alle Dateien und Ordner in diesem Verzeichnis einzeln rekursiv löschen. Das Folgende wird anhand des Beispielcodes demonstriert:

<?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 = "./test/";
    //调用函数,传入路径
    deldir($path);
?>

Anweisungen:

scandir () Die Funktion Gibt ein Array zurück, das alle Dateien und Verzeichnisse im angegebenen Verzeichnis enthält.

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo löschen Sie nicht leere Verzeichnisse mit PHP rmdir(). 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