file_exists()显示与预期相反的结果

时间:2013-07-10 18:17:56

标签: php file-exists

我有一个非常非常简单的功能:

function getUserImage($id) {

    if (file_exists(SITE_ROOT . '/images/' . $id)) {
        return "http://www.---.net/images/" . $id;                         
    } else {
        return "http://www.---.net/images/usericon.png";  
    }
}

这是这样称呼的:

<img src="<?php echo getUserImage($row['user_id'].".jpg"); ?>" />

如果用户没有个人资料照片,我要做的是显示默认图标。即使正在测试正确的路径,它每次都会显示默认图标(我已经确认了这一点)。也许我使用file_exists()错了?

2 个答案:

答案 0 :(得分:0)

file_exists()在文件系统级别工作。您正在传递/images/whatever之类的内容,因此它会在whatever目录中查找位于文件系统TOP位置的images文件,例如你试图相当于

c:\images\whatever

而不是图像实际存在的位置,在您网站的文档根目录中,例如

c:\inetpub\wwwroot\example.com\html\images\whatever

您通常不能直接在文件系统上下文中使用URL,因为您在URL中看到的路径很少直接映射到服务器文件系统上的内容。

答案 1 :(得分:0)

function getUserImage($id) {

    if (file_exists(SITE_ROOT . '/profile_pics/' . $id)) {
        return "http://www.---.net/profile_pics/" . $id;                         
    } else {
        return "http://www.---.net/images/usericon.png";  
    }


}

我在错误的文件夹中搜索。它应该一直是profile_pics