function deletefiles($directory)
{
$folder = glob($directory); // <--error on this line.
foreach($folder as $file)
{
if(is_dir($file))
{
deletefiles($directory);
}
else
{
unlink($file);
}
}
if(is_dir($directory))
{
rmdir($directory);
}
}
这是导致错误的代码。该函数应该删除指定文件夹的所有文件和子目录。每个文件夹最多只包含 5 个子文件夹。当文件夹中只有文件时,此功能有效。任何见解将不胜感激。
需要修复 2 个地方。
function deletefiles($directory)
{
$folder = glob($directory . '/*'); // <-- here
foreach($folder as $file)
{
if(is_dir($file))
{
deletefiles($file); // <-- and here
}
else
{
unlink($file);
}
}
if(is_dir($directory))
{
rmdir($directory);
}
}
看起来您正在发送带有$directory
而不是$file
的函数请求,这意味着您正在深入研究结构,您只是在同一文件夹中多次调用相同的函数。
我想你想把第一个if
部分改成这样:
if(is_dir($file))
{
deletefiles($file);
}