PHP unlink команда удаления нескольких файлов - PullRequest
0 голосов
/ 31 января 2012

Я вызываю функцию php unlink() для каталога (user-images/1/p/), содержащего следующие файлы:

1.jpg
1-s.jpg
1big.jpg
2.jpg
2-s.jpg
2big.jpg

Сам фактический вызов выглядит следующим образом:

unlink('user-images/1/p/1big.jpg');

Вместо того, чтобы просто удалять 1big.jpg, он удаляет все файлы с 1 в них (1big.jpg, 1-s.jpg, 1.jpg). Я немного исследовал это и, похоже, не могу найти никого, пишущего с похожей проблемой.

EDIT: ниже полный сценарий, не так много на самом деле, не вижу, как что-то может быть затронуто. Я никогда раньше этого не видел: (

<?PHP
unlink('user-images/1/p/1.jpg');
unlink('user-images/1/p/1-s.jpg');
$uid = '1';
$fileName = '467';
$image = '/friskyfriends/user-images/1/p/1-big.jpg';
$width = 320;
$height = 320;
buildPics();
//buildPics($uid,$fileName,$image,$width,$height);
?>

Ответы [ 4 ]

7 голосов
/ 07 ноября 2012

Я думаю, что вы ищете функцию GLOB, которая позволяет удалять с подстановочными знаками.

пример

foreach (glob("*.jpg") as $filename) {
   echo "$filename size " . filesize($filename) . "\n";
   unlink($filename);
}
1 голос
/ 15 февраля 2019

другой подход и более точное решение может быть с путем

$search_text = "logfiles";
foreach(glob("/path/to/your/directory/$search_text*") as $filename)
{
    if(file_exists($filename)
    {
        echo "$filename size " . filesize($filename) . "\n";
        unlink($filename);
    }
    else
    {
         //no need to write because file already found with glob function
    }
}
1 голос
/ 12 мая 2012

При запуске php-файла, содержащего только код unlink, он работал нормально.Я проследил остаток моих включений (взял навсегда :() и обнаружил некоторые проблемы в кодировании ранее. До сих пор не уверен, почему это повлияло на статический вызов unlink(). Тем не менее, это была проблема в другом месте кода, которая была решенаЯ ценю время и усилия, приложенные всеми, чтобы помочь мне решить эту проблему ...

0 голосов
/ 31 января 2012

Пожалуйста, добавьте функцию отмены связи, изображение которой вы хотите удалить.

unlink($image);
...