PHP file_exists не распознает имя файла с номером версии

#php

Вопрос:

Поэтому я приношу извинения, если это дублирующий вопрос, но я не нашел ответа. Ниже у меня есть немного PHP-кода, который работает не так, как ожидалось.

В основном я выполняю загрузку файла на сервер, первое условие возвращает значение true, попадает в цикл foreach и выполняет второе условие и переименовывает файл с номером версии

цикл продолжается, но второе условие никогда не принимает значение true, поэтому счетчик никогда не обновляется, а файл отправляется на сервер с дублирующим именем.

исходное имя файла: имя файла.pdf

второе имя файла: имя файла _2.pdf

третье имя файла: имя файла _2.pdf

почему не выполняется оценка файла как истинного????

 $dir = new DirectoryIterator(dirname($file_path));
    $counter = 1;
    if (file_exists($file_path . "/" . $filename)) {
        foreach ($dir as $fileinfo) {
            if (file_exists($file_path . "/" . $filename)) {
                eo($filename);
                $counter  = 1;
                $filename = pathinfo($filename, PATHINFO_FILENAME)."_$counter.".strtolower(pathinfo($filename, PATHINFO_EXTENSION));
            }
        }
    }
 

Комментарии:

1. Непонятно, что вы здесь пытаетесь сделать. Вы никогда не ссылались на свою $fileinfo переменную. Ваши два file_exists вызова идентичны, поэтому, если первый верен, второй также всегда будет верным.

Ответ №1:

Удалите первый if (file_exists($file_path . "/" . $filename)) {...} и используйте $fileinfo внутри второго if .