Php 删除目录内容&;子目录内容
我已经设置了一些PHP来删除一个目录,它的内容,以及任何子目录和它的内容。。。我是PHP新手,所以我肯定是做错了什么,或者是以最低效的方式做了什么 寻找一些关于如何做得更好的参考或建议 顺便说一下,这段代码很好用。使用PHP5.3.8Php 删除目录内容&;子目录内容,php,directory,delete-file,Php,Directory,Delete File,我已经设置了一些PHP来删除一个目录,它的内容,以及任何子目录和它的内容。。。我是PHP新手,所以我肯定是做错了什么,或者是以最低效的方式做了什么 寻找一些关于如何做得更好的参考或建议 顺便说一下,这段代码很好用。使用PHP5.3.8 chmod($main_dir, 0755); if ($handle = opendir($main_dir)) { while (false !== ($entry = readdir($handle))) { $absolute_p
chmod($main_dir, 0755);
if ($handle = opendir($main_dir)) {
while (false !== ($entry = readdir($handle))) {
$absolute_path = $main_dir.'/'.$entry;
if ($entry != "." && $entry != "..") {
chmod($absolute_path, 0755);
unlink($absolute_path);
//check if any folders exist, then delete files within
if (file_exists($absolute_path) && is_dir($absolute_path)) {
if ($child_handle = opendir($absolute_path)) {
while (false !== ($child_entry = readdir($child_handle))) {
$child_absolute_path = $absolute_path.'/'.$child_entry;
if ($child_entry != "." && $child_entry != "..") {
chmod($child_absolute_path, 0755);
unlink($child_absolute_path);
}
}
closedir($child_handle);
}
}
rmdir($absolute_path);
}
}
closedir($handle);
}
rmdir($main_dir);
有什么想法吗?非常感谢!
Im使用PHP5.3.8您可以使用递归DirectoryIterator列出所有文件和文件夹,然后删除它们。请注意,您必须首先使用递归迭代器::CHILD_,以便在删除文件夹之前删除文件
$dir = __DIR__ . "/test";
$di = new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS);
$ri = new RecursiveIteratorIterator($di, RecursiveIteratorIterator::CHILD_FIRST);
foreach ( $ri as $file ) {
$file->isDir() ? rmdir($file) : unlink($file);
}
您可以使用递归目录迭代器列出所有文件和文件夹,然后删除它们。请注意,您必须首先使用递归迭代器::CHILD_,以便在删除文件夹之前删除文件
$dir = __DIR__ . "/test";
$di = new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS);
$ri = new RecursiveIteratorIterator($di, RecursiveIteratorIterator::CHILD_FIRST);
foreach ( $ri as $file ) {
$file->isDir() ? rmdir($file) : unlink($file);
}
这可能更适合@shakabra谢谢,现在就去看看……这可能更适合@shakabra谢谢,现在就去看看……哇,简单多了。。。谢谢在php.net上读了一些书,希望我早就知道递归DirectoryIterator了。@Terry学习是一件持续的事情。。。很高兴我能帮上忙哇,简单多了。。。谢谢在php.net上读了一些书,希望我早就知道递归DirectoryIterator了。@Terry学习是一件持续的事情。。。很高兴我能帮忙