Я отредактировал весь вопрос, чтобы лучше представить ответ.
У меня был цикл for, который получал доступ и редактировал файлы изображений. Внутри цикла была сделана проверка file_exists (). Если файл изображения не существует, будет создан пустой файл.
Дело в том, что даже после создания файла file_exists () продолжит возвращать false и создавать новые пустые файлы (перезаписывая предыдущие операции).
Это происходит потому, что file_exists () и некоторые другие файловые функции кэшируют результат. Чтобы предотвратить это, используйте clearstatcache (); перед использованием этих функций, если вы ожидаете, что результат изменился и проверяете тот же файл!
После дальнейшего изучения я обнаружил причину исчезновения некоторых моих изображений: функция file_exists () кэширует результат.
При многократном цикле прохождения по одним и тем же файлам, если файл не существует для запуска, то file_exists () вернет false и будет создан пустой файл.
Если этот же файл был использован снова и результат «false» был кэширован, то предыдущее изображение будет уничтожено и будет использован новый пустой файл.
Чтобы предотвратить это, я вставил clearstatcache (); в начале самого цикла. Это решило мои проблемы!
Я меняю название вопроса, чтобы лучше представить ситуацию.
Других решений пока нет …