>我正在使用此代码删除文件夹中的所有文件,并且工作正常:
if(isset($_POST['deleteall'])) {
$files = glob($dir.'/*'); // get all file names
foreach($files as $file){ // iterate files
if(is_file($file)) {
unlink($file); // delete files
}
}
exit;
}
当我把exit
直接放在unlink
之后时,如下所示,它不再起作用了。
if(isset($_POST['deleteall'])) {
$files = glob($dir.'/*'); // get all file names
foreach($files as $file){ // iterate files
if(is_file($file)) {
unlink($file); // delete files
exit;
}
}
}
有人可以解释为什么必须将出口置于foreach
循环之外吗?因为在unlink
之后,所有内容都被删除了,您可以放置一个exit
,但不幸的是....
你的假设
unlink($file); // delete files
// ************
是不正确的。 这是一次删除 1 个文件 您需要让foreach
完成,以便删除目录中的每个文件。