我尝试了以下代码来检查root文件是否存在。
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']
。但它仍然没有成功。
任何帮助?
答案 0 :(得分:3)
对于代码可移植性,我建议您始终在file_exists()
等函数中使用绝对路径,否则在将多个文件包含在不同目录中和/或以CLI模式运行时,您可能会感到头疼。
ROOT
常量。此外,在某些情况下,$_SERVER['DOCUMENT_ROOT']
无法依赖,即当您使用vhost_alias
apache模块时。
通常,
file_exists("{$_SERVER['DOCUMENT_ROOT']}/images/{$res['users_id']}/thumnails/{$res['profile_picture']}")
应该适合你。
答案 1 :(得分:0)
函数file_exists()会准确检查您提供给它的路径。那里没有奇特的魔力。
将它设为绝对路径,它将检查该路径。交给它一个相对路径,它将从当前工作目录中检查。您可能想要考虑一下您的工作目录究竟是什么。