File_exists()在返回true时返回false,是什么导致这个?

时间:2014-10-02 19:09:48

标签: php file-exists flock wideimage

我编辑了整个问题以更好地代表答案。

我有一个for循环,可以访问和编辑图像文件。在循环中,进行了file_exists()检查。如果图像文件不存在,则会创建一个空白图像文件。

发生的事情是,即使在创建文件之后,file_exists()也会继续返回false并创建新的空白文件(覆盖以前的操作)。

这是因为file_exists()和一些其他文件函数缓存了结果。要防止这种情况,请使用clearstatcache();在使用这些函数之前,如果您希望结果已更改并且正在检查相同的文件!

1 个答案:

答案 0 :(得分:0)

经过进一步调查后,我发现了一些图像消失的原因:函数file_exists()缓存了结果。

多次循环遍历相同的文件时,如果文件不存在,则file_exists()将返回false并创建一个空白文件。

如果再次使用同一个文件并缓存结果“false”,则会破坏上一个图像并使用新的空白文件。

为了防止这种情况,我插入了clearstatcache();在非常循环的开始。这解决了我的问题!

我正在更改问题标题以更好地代表这种情况。