清除if(file_exists)的缓存

时间:2012-05-17 01:50:26

标签: php if-statement conditional-statements file-exists

我对file_exists有一些问题。请参考以下代码:

echo '<a href = "/classifiedads4free-view-all-ads/'.$catid_related.'-'.$cat_name.'/'.$related_ads['0'].'-'.$ad_name.'">';
if(file_exists('/images/ads/'.$related_ads['0'].'a_t.jpg')){
    echo '<img src = "/images/ads/'.$related_ads['0'].'a_t.jpg">';
}
else{
    echo '<img src = "/images/ads/no-pre.png">';
}
    echo '</a>';

我无法让条件起作用。我的意思是如果加载的第一个图像是no-pre.png,它将不显示所有图像。即使我将页面导航到另一个有图片的页面,它仍然会显示no-pre.png。我阅读了文档,并了解问题可能在于我需要清除file_exists的缓存,但我真的不知道如何或在何处使用它..

感谢是否有人可以帮助我。谢谢!赞赏。

更新:我刚发现它不是缓存,因为我没有在我的脚本上运行多个file_exists。只有1.我认为问题在于条件。我能把图像展示给我:

   if(!file_exists('/images/ads/'.$related_ads['0'].'a_t.jpg'))//NOTICE the !

但现在我的所有文件都存在,返回true,我无法得到我的无预告。

然后我想也许我的文件的网址是错的。但是,如果图像可以显示file_exists何时返回false,那么图像不应该存在..?

1 个答案:

答案 0 :(得分:2)

在第二次运行file_exists()之前,您需要运行clearstatcache()。或者,为了安全起见,每次都在file_exists()之前调用它。