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が返されないようにする方法を改善する必要があるため、実際にファイルが適切に削除されない理由がわかりません。

時々それは完全に動作します。

4

2 に答える 2

1

if($remove)に変更if($remove && !file_exists($file))

また、Windowsではリンク解除が失敗する場合があることに注意してください:http://ie.php.net/manual/en/function.unlink.php#100580

于 2011-02-24T22:08:19.347 に答える
0

is_file()の後に呼び出しを追加してunlink、ファイルがまだ存在するかどうかを確認できます

于 2011-02-24T22:07:24.667 に答える