我有一个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 :(得分: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);
}
}
这是一个非常讨厌的功能 你想小心处理它。确保您没有删除任何您不想删除的目录。它将尝试删除整个目录及其中的所有文件 除了确保成功打开目录句柄以进行阅读之外,它不会进行任何错误检查。
答案 1 :(得分: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);
}