2013-07-10 27 views
0

我有一個非常,非常簡單的功能相反的結果:file_exists()顯示比預期

function getUserImage($id) { 

    if (file_exists(SITE_ROOT . '/images/' . $id)) { 
     return "http://www.---.net/images/" . $id;       
    } else { 
     return "http://www.---.net/images/usericon.png"; 
    } 
} 

它被稱爲是這樣的:

<img src="<?php echo getUserImage($row['user_id'].".jpg"); ?>" /> 

我所試圖做的是展現出如果用戶沒有個人資料圖片,則爲默認圖標。即使正在測試正確的路徑,它也會每次顯示默認圖標(我確認了這一點)。也許我正在使用file_exists()錯誤?

+0

什麼是'SITE_ROOT'? A ** URL **到您的站點根目錄或**本地文件系統路徑**? – deceze

+0

我認爲文件的物理路徑不正確,您應該檢查該文件。 –

+3

如果你迴應'SITE_ROOT,你會得到什麼。 '圖片/' 。 $ id' – Orangepill

回答

0
function getUserImage($id) { 

    if (file_exists(SITE_ROOT . '/profile_pics/' . $id)) { 
     return "http://www.---.net/profile_pics/" . $id;       
    } else { 
     return "http://www.---.net/images/usericon.png"; 
    } 


} 

我在錯誤的文件夾中搜索。它應該一直是profile_pics

0

file_exists()在文件系統級別工作。您傳遞的信息類似/images/whatever,因此它將在文件系統頂部的images目錄中查找whatever文件,例如,你想爲

c:\images\whatever 

,而不是在圖像實際存在的等價,在您的網站的文檔根目錄,例如

c:\inetpub\wwwroot\example.com\html\images\whatever 

你一般不能直接在文件系統方面使用的URL,因爲你在URL中看到的路徑很少EVER直接映射到服務器的文件系統上有什麼。