6

我尝试了以下代码来检查根目录中文件的存在。

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']. 但它仍然没有成功。

有什么帮助吗?

4

2 回答 2

4

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

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

一般来说,

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

应该为你工作。

于 2012-07-14T17:01:16.217 回答
0

函数 file_exists() 准确地检查你给它的路径。那里没有花哨的魔法。

给它一个绝对路径,它会检查那个路径。给它一个相对路径,它将从当前工作目录中检查。您可能想考虑一下您的工作目录实际上是什么。

于 2012-07-14T17:02:19.713 回答