Возможный дубликат:
рекурсивная функция удаления каталога для PHP?
С PHP
Я хочу знать самый простой способ удалить папку с файлами и папками внутри.
Возможный дубликат:
рекурсивная функция удаления каталога для PHP?
С PHP
Я хочу знать самый простой способ удалить папку с файлами и папками внутри.
Этот прием из документов по PHP довольно крут:
function rrmdir($path)
{
return is_file($path)?
@unlink($path):
array_map('rrmdir',glob($path.'/*'))==@rmdir($path)
;
}
Он использует array_map
, который вызывает данную функцию для массива результатов. Он также кроссплатформенный.
system("rm -fr $foldername");
Это работает только на unix, но это легко.
escapeshellcmd
на $foldername
перед вызовом этого, и (б) будьте осторожны с путем, с которого вы выполняете. Я бы убедился, что $foldername
- это абсолютный путь, просто на всякий случай.
- person Zach Rattner; 26.09.2011
Эта рекурсивная функция опубликована в виде комментария на странице справочника по функциям rmdir(). а>:
function rrmdir($dir) {
if (is_dir($dir)) {
$objects = scandir($dir);
foreach ($objects as $object) {
if ($object != "." && $object != "..") {
if (filetype($dir . "/" . $object) == "dir")
rrmdir($dir . "/" . $object);
else
unlink($dir . "/" . $object);
}
}
reset($objects);
rmdir($dir);
}
}