2015-06-21 146 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中/管理/(文件夾名) –