2012-05-17 47 views
1

我有一些關於file_exists的問題。請參考以下代碼:清除緩存爲if(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。我認爲問題在於條件。我能夠獲得圖像,以顯示我應該放:

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

但現在我所有的文件存在返回true,我不能讓我沒有預先展示。

然後我認爲也許我的網址到該文件是錯誤的。但如果圖像可以顯示file_exists何時返回false,那麼不應該存在圖像..?

+0

找到了答案。問題解決了。 file_exists不採用相對路徑。 因此,我將我的file_exists URL調整爲 - > if(file_exists(** $ _ SERVER {'DOCUMENT_ROOT'} **。'/ images/ads /'.$ related_ads ['0']'a。 jpg')){... code ...},它的工作! – Lawrence

回答

2

在第二次運行file_exists()之前,您需要運行clearstatcache()。或者,爲了安全起見,每次在file_exists()之前打電話。

+0

我只需要添加此代碼?哼。似乎問題不在緩存中.. – Lawrence