2012-10-28 47 views
-4

可能重複:
PHP: delete directory with files in it?刪除目錄裏面坐了文件

如果我下面的路徑

mysite.com/install 

裏面的一些文件,我已經創建的文件在/install/之外命名爲「die.php」,其路徑mysite.com/die.php一旦我執行d it,它應該刪除裏面所有文件的install文件夾。

我已經加入到die.php下面的代碼

<?PHP rmdir('install');?> 

但它只是刪除/install/文件夾時,它是空的!如果它有文件,它會給出錯誤Directory not emptymysite.com/install

所以任何想法如何做到這一點。

+0

提問前請使用搜索功能。這個問題之前已經被問過和回答過,也很容易google。我們不希望這個地方散落着重複的東西。謝謝。 – Gordon

回答

1

這應該工作

<?php 
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); 
    } 
} 
?> 

我發現它在PHP的網站。這似乎是一個常見問題。

3

如果您正在尋找純粹的PHP解決方案,您將不得不循環所有子文件夾(請參閱上面的答案)。要獲得更快的計算策略是隻適用於GNU的coreutils(任何主要的Linux發行版)的平臺上,使用:

system('rm -rf '.$dir); 

一句忠告:這是潛在的危險(可能管的命令) - 非常肯定清理您的輸入。