Ich hatte zum Beispiel einen Ordner mit dem Namen "Temp" und wollte alle Dateien aus diesem Ordner mit PHP löschen oder leeren. Kann ich das tun?
Antworten
Zu viele Anzeigen?
Stichoza
Punkte
4403
Wenn Sie alles aus einem Ordner (einschließlich der Unterordner) löschen möchten, verwenden Sie diese Kombination aus array_map
, unlink
y glob
:
array_map( 'unlink', array_filter((array) glob("path/to/temp/*") ) );
Dieser Aufruf kann auch mit leeren Verzeichnissen umgehen (danke für den Tipp, @mojuba!)
Yamiko
Punkte
4905
Hier ist ein modernerer Ansatz, der die Standard-PHP-Bibliothek (SPL) .
$dir = "path/to/directory";
if(file_exists($dir)){
$di = new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS);
$ri = new RecursiveIteratorIterator($di, RecursiveIteratorIterator::CHILD_FIRST);
foreach ( $ri as $file ) {
$file->isDir() ? rmdir($file) : unlink($file);
}
}
JakeParis
Punkte
10813
Poelinca Dorin
Punkte
9291
Dieser Code aus http://php.net/unlink :
/**
* Delete a file or recursively delete a directory
*
* @param string $str Path to file or directory
*/
function recursiveDelete($str) {
if (is_file($str)) {
return @unlink($str);
}
elseif (is_dir($str)) {
$scan = glob(rtrim($str,'/').'/*');
foreach($scan as $index=>$path) {
recursiveDelete($path);
}
return @rmdir($str);
}
}
- See previous answers
- Weitere Antworten anzeigen