无法使file_exists功能在PHP

时间:2018-01-18 20:44:51

标签: php file-exists

我遇到了问题。

我实际上有这段代码:

// Check if image exist for the hotel
$src = '../assets/app/images/hotel-logos/007.jpg';

if(file_exists($src)) {
    $src = $src;
}
else {
    $src = '../assets/app/images/hotel-logos/default.jpg';
}

echo '<center><img src="'.$src.'" width="200"></center>';

此代码检查图像是否存在。

但每次我都有后备图片default.jpg,而我应该007.jpg

我检查我的路径并且它有效。我的007.jpg图片与我的default.jpg图片位于同一目录中。

我已经使用if(@getimagesize($src)) { ... }进行了测试。同样的。

为什么?

3 个答案:

答案 0 :(得分:1)

即使您的文件放在某个目录中,也不意味着PHP进程的当前路径是相同的。请改用绝对路径:

// Check if image exist for the hotel
$src = '../assets/app/images/hotel-logos/007.jpg';

if(!file_exists(__DIR__.'/'.$src)) {
    $src = '../assets/app/images/hotel-logos/default.jpg';
}

echo '<center><img src="'.$src.'" width="200"></center>';

答案 1 :(得分:0)

我认为你已经完成了它让它更简单可能解决你的问题试试这个:

<?php
$src = '../assets/app/images/hotel-logos/007.jpg';

if (!file_exists($src)) {
    $src = '../assets/app/images/hotel-logos/default.jpg';
}
echo '<center><img src="'.$src.'" width="200"></center>';

?>

答案 2 :(得分:0)

好的,我通过使用:

来实现它

$_SERVER['DOCUMENT_ROOT']

// Check if image exist for the hotel
$src = '../assets/app/images/hotel-logos/007.jpg';

if(!file_exists($_SERVER['DOCUMENT_ROOT'].'/assets/app/images/hotel-logos/007.jpg')) {
    $src = '../assets/app/images/hotel-logos/default.jpg';
}

echo '<center><img src="'.$src.'" width="200"></center>';