PHP - 如果file_exists不适用于图像

时间:2017-01-21 04:43:01

标签: php file-exists

是的,就像这应该是这么简单,我根本无法使这段代码工作。 我正在尝试检查是否存在用户头像图像,如果不存在,请使用默认图像。现在,即使图像存在且文件名,路径,拼写,格式等都正确,file_exists()始终返回false声称该文件不存在。

  <?php
    $avatar = 'http://'.$_SERVER['SERVER_NAME'].'/ihg/dist/img/user'.$_SESSION['ID'].'-128x128.jpg';
    $default = 'http://'.$_SERVER['SERVER_NAME']."/ihg/dist/img/user_default.jpg";

    if (!file_exists($avatar)) {
        echo "<img src=\"$default\" class=\"user-image\" alt=\"User Image\">";
    } else {
        echo "<img src=\"$avatar\" class=\"user-image\" alt=\"User Image\">";
    }
  ?>

这是服务器端问题还是代码有问题?

编辑: 我也尝试使用$ _SERVER ['DOCUMENT_ROOT']变量和绝对路径,但没有结果。

1 个答案:

答案 0 :(得分:2)

file_exists()接受文件路径而不是网址。

要根据URL确定图像是否存在,您需要检查响应类型。

由于这些是本地资源,您只需从使用URL切换到完整服务器文件路径。 ($avatar = '/path/to/root/...

http://php.net/manual/en/function.file-exists.php