2012-07-14 25 views
1

我試了下面的代碼來檢查根目錄下文件的存在。從根檢查文件的存在

if($res['profile_picture']!="" && file_exists("images/".$res['users_id']."/thumnails/".$res['profile_picture'])){ 
    $photo_p="images/".$res['users_id']."/thumnails/".$res['profile_picture']; 
} 

它只適用於根目錄不是子目錄。

我不確定函數file_exist是否檢查絕對和相對路徑,所以我嘗試添加ROOT和$_SERVER['DOCUMENT_ROOT']。但它仍然沒有解決。

任何幫助?

回答

2

對於代碼可移植性,我建議你總是在像file_exists()這樣的函數中使用絕對路徑,否則當將多個文件包含在不同的目錄中和/或在CLI模式下運行時,你可能會打破頭。

ROOT常量可能在您的代碼中未定義。此外,$_SERVER['DOCUMENT_ROOT']在某些情況下不能依賴,即當您使用vhost_alias apache模塊時。

一般來說,

file_exists("{$_SERVER['DOCUMENT_ROOT']}/images/{$res['users_id']}/thumnails/{$res['profile_picture']}") 

應該爲你工作。

0

函數file_exists()完全檢查您給它的路徑。那裏沒有幻想魔法。

把它作爲一個絕對路徑,它將檢查該路徑。把它作爲相對路徑,它將從當前工作目錄中檢查。你可能想考慮一下你的工作目錄是什麼。