Heim >Backend-Entwicklung >PHP-Problem >So löschen Sie nicht leere Ordner in PHP

So löschen Sie nicht leere Ordner in PHP

青灯夜游
青灯夜游Original
2021-03-19 11:10:562660Durchsuche

So löschen Sie einen nicht leeren Ordner in PHP: Verwenden Sie zuerst die Funktion unlink(), um jede Datei im Ordner zu löschen. Das Syntaxformat lautet „unlink(filename)“ und verwenden Sie dann die Funktion rmdir(), um die leere Datei zu löschen Ordner. Ja, das Syntaxformat ist „rmdir(dir)“.

So löschen Sie nicht leere Ordner in PHP

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

php rmdir()-Funktion wird zum Löschen leerer Verzeichnisse verwendet, aber wenn wir nicht leere Verzeichnisse löschen möchten, müssen wir Die nicht leeren Verzeichnisse müssen zum Löschen von Dateien oder Unterverzeichnissen hinzugefügt werden. Hier stelle ich Ihnen vor, wie Sie nicht leere Verzeichnisse in PHP löschen.

php rmdir()-Funktion

rmdir – leeres Verzeichnis löschen

Syntax:

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

Versuchen Sie, das durch dirname angegebene Verzeichnis zu löschen. Das Verzeichnis muss leer sein und über entsprechende Berechtigungen verfügen. Bei einem Fehler wird ein Fehler der Stufe E_WARNING generiert.
Parameter:

  • Verzeichnisname: Der Pfad zum Verzeichnis.
  • Kontext: Unterstützung für Kontext in PHP 5.0.0 hinzugefügt.

Empfohlenes Lernen: „PHP-Video-Tutorial

php rmdir() löscht nicht leere Verzeichnisse

Wie oben erwähnt, kann die Funktion rmdir() nur leere Verzeichnisse löschen, was in diesem Fall erforderlich ist ist ein nicht leeres Verzeichnis. Geben Sie zuerst das Verzeichnis ein, verwenden Sie die Funktion unlink(), um alle Dateien im Verzeichnis zu löschen, und kehren Sie dann zurück und löschen Sie das leere Verzeichnis. Wenn das Verzeichnis Unterverzeichnisse enthält und das Verzeichnis nicht leer ist, müssen Sie die rekursive Methode verwenden. Der Quellcode der benutzerdefinierten rekursiven Funktion zum Löschen eines Verzeichnisses lautet wie folgt:

<?php
/* by http://www.manongjc.com/article/27.html*/
function delDir($directory){//自定义函数递归的函数整个目录
    if(file_exists($directory)){//判断目录是否存在,如果不存在rmdir()函数会出错
        if($dir_handle=@opendir($directory)){//打开目录返回目录资源,并判断是否成功
            while($filename=readdir($dir_handle)){//遍历目录,读出目录中的文件或文件夹
                if($filename!=&#39;.&#39; && $filename!=&#39;..&#39;){//一定要排除两个特殊的目录
                    $subFile=$directory."/".$filename;//将目录下的文件与当前目录相连
                    if(is_dir($subFile)){//如果是目录条件则成了
                        delDir($subFile);//递归调用自己删除子目录
                    }
                    if(is_file($subFile)){//如果是文件条件则成立
                        unlink($subFile);//直接删除这个文件
                    }
                }
            }
            closedir($dir_handle);//关闭目录资源
            rmdir($directory);//删除空目录
        }
    }
}

delDir("mydir");//调用delDir函数

?>

Zusätzlich zum rekursiven Löschen nicht leerer Verzeichnisse können wir auch den Betriebssystembefehl „rm -rf“ verwenden, um nicht leere Verzeichnisse zu löschen Verzeichnisse, aber dies muss auch aus Sicherheits- und Plattformaspekten erfolgen. Erwägen Sie, es so oft wie möglich nicht zu verwenden.

Weitere Kenntnisse zum Thema Programmierung finden Sie unter: Programmiervideos! !

Das obige ist der detaillierte Inhalt vonSo löschen Sie nicht leere Ordner in PHP. 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