【问题标题】:check file existence from root从根检查文件是否存在
【发布时间】:2012-07-14 04:44:35
【问题描述】:

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

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

有什么帮助吗?

【问题讨论】:

    标签: php file-exists document-root


    【解决方案1】:

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

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

    一般来说

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

    应该适合你。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2011-09-11
        • 2021-12-25
        • 1970-01-01
        • 2011-12-02
        • 1970-01-01
        相关资源
        最近更新 更多