2012-05-11 33 views
-1

我已經在網上看到了這個教程,但是我無法讓它工作。檢查文件是否存在,而不僅僅是網址

我在while循環了這一點,但它不應該的問題:

while($row = mysql_fetch_object($result)){ 
$image_url = $deviceimg.($row->Image); 
if(!file_exists($image_url)) 
{} 
else { 
$image_url = 'images/android.png'; 
} 

基本上,即時我的數據庫,所有被稱爲圖像行被填充,但只有一些具有實際文件。我試圖做的是檢查圖像文件是否實際存在於服務器上,如果它不使用默認圖像(images/android.png)

無論我這樣做,它將或者取代ALL圖像的默認值,或者只是使用數據庫中的URL,而不管該文件是否存在。

+0

請提供一些調試信息,又名「你試過什麼?」。這將簡單地歸結爲不正確的路徑,這可以通過在'if'之前放置'var_dump($ image_url)'來輕鬆找到。 '$ deviceimg'包含什麼? – CodeCaster

回答

1

您遇到問題的原因是因爲當您將0123'傳遞給file_exists()時,您已將其包裝爲單引號。這是檢查是否有一個文件名爲$image_url的文件,而不是使用變量的內容。

變化

if (!file_exists('$image_url')) 

if (!file_exists($image_url)) 

,它會工作。

+0

我剛剛更新了我的問題。嘗試了有和沒有雙引號。它仍然返回空白圖像文件不存在的位置,以及它們存在的正確圖像 – K20GH

+0

您確定'images/android.png'存在嗎?調用'file_exists()'以及... – DaveRandom

+0

如果我交換if語句,所以else語句是空白的,它會將所有圖像替換爲images/android.png。如果我得到空白圖像所在的屬性,則鏈接到不存在的每個數據庫條目的獨特圖像 – K20GH

1

'$image_url'不會被解析爲變量$image_url的內容:它將保持相同的字符串文字。

刪除引號。只有雙引號("$image_url")中的變量纔會被解析。

+0

我剛剛更新了我的問題。嘗試了有和沒有雙引號。它仍然返回空白圖像文件不存在的位置,以及它們存在的正確圖像 – K20GH

相關問題