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 に答える