if($od = opendir($d)) { // $d 為目錄路徑
while(($file = readdir($od)) !== false) {
if($file != '.' && $file != '..') {
$full = $d . '/' . $file;
if(is_dir($full)) {
// 若需刪除子目錄需遞迴呼叫
} else {
unlink($full);
}
}
}
closedir($od);
}
function del_dir($dir) {
if(strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
$str = "rmdir /s/q " . escapeshellarg($dir);
} else {
$str = "rm -rf " . escapeshellarg($dir);
}
exec($str, $output, $return_var);
return $return_var === 0;
}
$target = "a123"; // 檔案或目錄路徑
if(is_dir($target)) {
if(rmdir($target)) echo "目錄 {$target} 刪除完畢";
else echo "目錄無法刪除,可能非空";
}
if(is_file($target)) {
if(unlink($target)) echo "檔案 {$target} 刪除完畢";
else {
echo "刪除失敗,嘗試修改權限...";
if(chmod($target, 0777)) {
if(unlink($target)) echo "權限修改後刪除成功";
else echo "無法透過 Web 刪除,可能受 FTP 權限限制";
}
}
}
安全提醒:使用 exec 需極度小心注入風險,務必用 escapeshellarg;生產環境建議改用 PHP 內建遞迴刪除函式庫(如 RecursiveDirectoryIterator)。