Der folgende Editor zeigt Ihnen ein Beispiel für das Löschen eines bestimmten Ordners in PHP. Der Herausgeber findet es ziemlich gut, deshalb werde ich es jetzt mit Ihnen teilen und es allen als Referenz geben. Schauen Sie doch einmal mit dem Editor vorbei
1. Vorwort
Ziel: PHP löscht ein angegebenes Verzeichnis
Die verwendeten PHP-Funktionen: is_dir, opendir, readdir, scandir, rmdir, geschlossenir usw. (Hinweis: Andere Dateioperationsfunktionen können ebenfalls ausgeführt werden, hier werden nur die diesmal verwendeten Funktionen aufgeführt)
2. Einführung in verwandte Funktionen
Die Methode zum Betrieb von PHP-Dateien ist im Wesentlichen die gleiche. Ich werde die Einführung hier nicht wiederholen. Hier werde ich eine neue Funktion vorstellen
rmdir
Einzelheiten finden Sie unter: http://www. w3school.com.cn/php/func_filesystem_rmdir.asp
3. Codezusammensetzung
** * [delAllFile description] 删除指定目录 * @param [type] $dirName [description] 目录 * @param [type] $file [description] 记录的过程文件 * @param integer $type [description] 第一次默认打开新文件,第二次调用不打开 * @return [type] [description] */ public function delAllFile($dirName, $file, $type = 1) { $re = $this->checkDir($dirName); //默认第一次打开文件 if($type){ $file = fopen($file, 'w');//打开日志文件 } if($re){ $this->delFile($dirName, $file); }else{ fwrite($file,"{$dirName}清理完成\r\n"); } }
/** * [checkDir description] 检测文件夹是否为空,为空直接删除 * @param [type] $dirName [description] 文件夹名 * @return [type] [description] */ private function checkDir($dirName) { $a = scandir($dirName);//列出 images 目录中的文件和目录: //只包含.和..目录的文件夹为空文件夹 if(sizeof($a) == 2){ rmdir($dirName); return false; } return true; } /** * [delFile description] 上传文件的方法 * @param [type] $dirName [description] 目录 * @param [type] $file [description] 记录的文件 * @return [type] [description] */ private function delFile($dirName, $file) { $dh = openDir($dirName); while($handle = readdir($dh)){ if($handle == '.' || $handle == '..') { continue; } $resource = $dirName.'/'.$handle; //判断是否是文件夹 if(is_dir($resource)) { //判断文件夹是否为空 $re = $this->checkDir($dirName); if($re){ $this->delAllFile($resource, $file, 0); }else{ fwrite($file,"{$resource}清理完成\r\n"); continue; } }else{ unlink($resource); } } //关掉资源,删除目录 closedir($dh);//关闭目录资源 fwrite($file,"{$dirName}清理完成\r\n"); rmdir($dirName);//删除空目录 }
Daher müssen Sie für Teilmengen auf hoher Ebene abschließend eine Schleifenbeurteilung hinzufügen, um zu bestimmen, ob sie gelöscht werden kann, um diesen Fehler zu vermeiden
// //关掉资源,删除目录 // closedir($dh);//关闭目录资源 // fwrite($file,"{$dirName}清理完成\r\n"); //rmdir($dirName);//删除空目录 //每次目录层级高了就报错,故加个循环处理 $i = 1; while($i){ $re = $this->checkDir($dirName); echo "$dirName $i 次<br/><hr/>"; $i++; if(!$re){ $i = 0; closedir($dh);//关闭目录资源 fwrite($file,"{$dirName}清理完成\r\n"); } }
4. Fazit
Das Löschen eines Verzeichnisses ist relativ einfach: 1. Bestimmen Sie, ob es sich um ein Verzeichnis handelt, rufen Sie es rekursiv auf, andernfalls löschen Sie die Datei direkt2. Stellen Sie fest, ob das Verzeichnis leer ist.
3
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der Funktion zum Löschen bestimmter Ordner in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!