2015-06-21 43 views
-2

我想删除里面的一切文件夹。但它似乎并没有工作。我尝试了很多不同的方法。有人能告诉我我做错了什么吗?如何在PHP中调试递归目录搜索脚本?

<?php 
$path = $_POST['Name']; 
session_start(); 

$dir = __DIR__ . "$path"; 
$di = new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS); 
$ri = new RecursiveIteratorIterator($di, RecursiveIteratorIterator::CHILD_FIRST); 
foreach ($ri as $file) { 
    $file->isDir() ? rmdir($file) : unlink($file); 
} 

echo "<h1 style='font:normal;'>The Account $path Was deleted</h1>"; 


?> 
+0

所有文件为什么不'回声$文件;'看之前删除您要删除的内容?我似乎记得,这些迭代器返回对象的数组,而不是一个字符串数组(他们可能有一个神奇的toString值,但看文档确认)。 – halfer

+0

另外,检查你的删除命令的返回值 - 它们应该返回一个成功的布尔值。如果删除失败,我认为您的代码应该停止并报告错误。 – halfer

回答

1

这里的解决方案,你可以使用glob找到匹配特定模式

function RemoveDirectory($direct) 
{ 
    foreach(glob("{$direct}/*") as $file) 
    { 
     if(is_dir($file)) { 
      RemoveDirectory($file); 
     } else { 
      unlink($file); 
     } 
    } 
    rmdir($direct); 
} 
+0

不为我删除任何东西:( –

+0

你能证明与文件的文件夹,这样我就可以尝试和重复的动作。 –

+0

该文件的目录如下所示/ htdocs中/管理/(文件夹名) –