从根目录检查文件是否存在


check file existence from 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']。但还是没有成功。

有什么帮助吗?

为了代码的可移植性,我建议您在file_exists()等函数中始终使用绝对路径,否则,在不同目录中包含多个文件和/或在CLI模式下运行时,您可能会崩溃。

ROOT常量在您的代码中可能未定义。此外,在某些情况下不能依赖$_SERVER['DOCUMENT_ROOT'],即当您使用vhost_alias apache模块时。

一般来说,

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

应该对你有用。

函数file_exists()会精确地检查给它的路径。

给它一条绝对的路径,它就会检查该路径。交给它一个相对路径,它将从当前工作目录中进行检查。您可能需要考虑一下您的工作目录到底是什么。