2012-07-14 44 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()完全检查您给它的路径。那里没有幻想魔法。

把它作为一个绝对路径,它将检查该路径。把它作为相对路径,它将从当前工作目录中检查。你可能想考虑一下你的工作目录是什么。