1
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 个子文件夹。当文件夹中只有文件时,此功能有效。任何见解将不胜感激。

4

2 回答 2

2

有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);
  }
}
于 2012-08-22T03:47:50.943 回答
1

看起来您正在发送函数请求,$directory而不是$file意味着您正在深入研究结构,您只是在同一个文件夹中多次调用相同的函数。

我认为您想将第一if部分更改为:

if(is_dir($file)) 
{ 
    deletefiles($file);
} 
于 2012-08-22T03:46:08.670 回答