2011-02-24 10 views
0

私が作ったこのカスタムの単純なスクリプトを使用していますが、何とか失敗していますが、常にtrueを返します。リンク解除が失敗することがある - 改善が必要

このクラスでそれらを介して行くのアレイに配置されているunlinkファイルは、削除されたファイルの成功の上にカウンターをインクリメントし、これが私のスクリプトです:

<?php 

class Delete 
{ 
    function deleteFiles($array) 
    { 
     if(is_array($array)) 
     { 
      $filecount = count($array); 
      $count = 0; 

      foreach($array as $file) 
      { 
       if(file_exists($file)) 
       { 
        $remove = unlink($file); 

        if($remove) 
        { 
         $count++; 
        } 
       } 
       else 
       { 
        return false; 
       } 
      } 

      if($count == $filecount) 
      { 
       return true;  
      } 
      else 
      { 
       return false; 
      } 
     } 
     else 
     { 
      return false; 
     } 
    } 
} 

?> 

は基本的に私はどのように改善が必要配列の画像が完全にが削除されていて、削除されていないときにファイルを削除するとtrueに戻らないので、ファイルを実際に正しく削除しない理由はわかりません。

時には完全に機能します。

+0

使用しているOSはどれですか?私は以前にWindowsで 'unlink'を使用したときの問題について聞いたことがあります。 –

答えて

1

変更if($remove)また

if($remove && !file_exists($file))にあるかどうかを確認するために unlinkis_file()への呼び出しを追加することができます。 http://ie.php.net/manual/en/function.unlink.php#100580

+0

私のホストはLinuxを使用しています。 – MacMac

+0

'while'ループがあった場合、それが良いと思っていました。 'while(!file_exists($ file)== true){unlink($ file); } 'それは妥当だろうか? – MacMac

+0

問題がファイル許可のようなものであれば、無限ループが発生します。あなたはunlink()呼び出しが失敗した理由を知る必要があります –

0

あなたは時々リンク解除は、Windows上で失敗することに注意して、ファイルがまだそこに

関連する問題