Unlink иногда терпит неудачу - нуждается в улучшениях - PullRequest
0 голосов
/ 25 февраля 2011

Я использую этот нестандартный, простой скрипт, который я создал, почему-то он не работает, но он всегда возвращает 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, если при удалении ссылки файл не был удален, а у меня нет, поэтому я понятия не имею, почему он не удаляет файлы должным образом.

Иногда это работает идеально.

Ответы [ 2 ]

1 голос
/ 25 февраля 2011

изменить if($remove) на if($remove && !file_exists($file))

Также имейте в виду, что иногда в Windows может произойти сбой связи: http://ie.php.net/manual/en/function.unlink.php#100580

0 голосов
/ 25 февраля 2011

Вы можете добавить вызов к is_file() после unlink, чтобы проверить, есть ли файл еще там

...