我编辑了整个问题以更好地代表答案。
我有一个for循环,可以访问和编辑图像文件。在循环中,进行了file_exists()检查。如果图像文件不存在,则会创建一个空白图像文件。
发生的事情是,即使在创建文件之后,file_exists()也会继续返回false并创建新的空白文件(覆盖以前的操作)。
这是因为file_exists()和一些其他文件函数缓存了结果。要防止这种情况,请使用clearstatcache();在使用这些函数之前,如果您希望结果已更改并且正在检查相同的文件!
答案 0 :(得分:0)
经过进一步调查后,我发现了一些图像消失的原因:函数file_exists()缓存了结果。
多次循环遍历相同的文件时,如果文件不存在,则file_exists()将返回false并创建一个空白文件。
如果再次使用同一个文件并缓存结果“false”,则会破坏上一个图像并使用新的空白文件。
为了防止这种情况,我插入了clearstatcache();在非常循环的开始。这解决了我的问题!
我正在更改问题标题以更好地代表这种情况。