2017-03-04 193 views
-1

我有一個php腳本,可以將照片上傳到主文件夾並將其複製到子文件夾中。我也有一個刪除照片的PHP腳本。問題是它只從主文件夾刪除照片,而不是子文件夾。這是我試圖提出的代碼,但沒有任何反應。有什麼想法嗎?從文件夾和子文件夾中刪除文件

$deletefile = $galleriesfolder.$folder.$dir.$image; 
    $deletefile1 = $galleriesfolder.$folder.$dir."/thumbs/".$image; 
    unlink($deletefile); 
    if (!is_file($deletefile)): 
     die("no file"); 
    endif; 
    unlink($deletefile1); 
    if (!is_file($deletefile1)): 
     die("no file"); 

    endif; 

回答

0

刪除所有子文件夾和文件的目錄遞歸

/** 
* Deletes a directory and all files and folders under it 
* @return Null 
* @param $dir String Directory Path 
*/ 
function rmdir_files($dir) { 
$dh = opendir($dir); 
if ($dh) { 
    while($file = readdir($dh)) { 
    if (!in_array($file, array('.', '..'))) { 
    if (is_file($dir.$file)) { 
    unlink($dir.$file); 
    } 
    else if (is_dir($dir.$file)) { 
    rmdir_files($dir.$file); 
    } 
    } 
    } 
    rmdir($dir); 
} 
} 

這是一個非常討厭的功能。
你想小心處理它。確保你不刪除任何你不打算刪除的目錄。它將嘗試刪除整個目錄及其中的所有文件。
除了確保目錄句柄已成功打開以進行閱讀之外,它不會檢查錯誤。

0

此代碼將遞歸刪除目錄中的所有子文件夾和文件。

$dir = "/"; 
 
$di = new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS); 
 
$ri = new RecursiveIteratorIterator($di, `enter code here`RecursiveIteratorIterator::CHILD_FIRST); 
 
foreach ($ri as $file) 
 
{ 
 
     $file->isDir() ? rmdir($file) : unlink($file); 
 
}

相關問題