File_exists () возвращает false, когда он должен возвращать true, что может быть причиной этого?

Я отредактировал весь вопрос, чтобы лучше представить ответ.

У меня был цикл for, который получал доступ и редактировал файлы изображений. Внутри цикла была сделана проверка file_exists (). Если файл изображения не существует, будет создан пустой файл.

Дело в том, что даже после создания файла file_exists () продолжит возвращать false и создавать новые пустые файлы (перезаписывая предыдущие операции).

Это происходит потому, что file_exists () и некоторые другие файловые функции кэшируют результат. Чтобы предотвратить это, используйте clearstatcache (); перед использованием этих функций, если вы ожидаете, что результат изменился и проверяете тот же файл!

0

Решение

После дальнейшего изучения я обнаружил причину исчезновения некоторых моих изображений: функция file_exists () кэширует результат.

При многократном цикле прохождения по одним и тем же файлам, если файл не существует для запуска, то file_exists () вернет false и будет создан пустой файл.

Если этот же файл был использован снова и результат «false» был кэширован, то предыдущее изображение будет уничтожено и будет использован новый пустой файл.

Чтобы предотвратить это, я вставил clearstatcache (); в начале самого цикла. Это решило мои проблемы!

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]