无法使文件_exists函数在PHP中工作

无法使文件_exists函数在PHP中工作,php,file-exists,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

我面临一个问题

实际上,我有以下代码:

// 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>';
此代码检查图像是否存在

但是每次我都有一个fallback映像default.jpg,而我应该有007.jpg

我检查我的路径,它工作。我的007.jpg映像与默认的.jpg映像位于同一目录中

我已经试过了if@getimagesize$src{…}。同样的


为什么?

即使您的文件被放置在某个目录中,也不意味着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>';

我认为你做得太多了,让它更简单可能会解决你的问题尝试以下方法:

<?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>';

?>

好的,我使用以下方法使其工作:

$\u服务器['DOCUMENT\u ROOT']


不要随意使用YOLO运算符@,它会抑制错误。而是先测试文件是否存在。为什么这样做$src=$src?检查一下!文件_存在…您的$src=$src;没有意义。$src=$src。。。真的吗?@tadman我从来没有听说过YOLO操作符,我喜欢它。试着使用绝对路径,例如_udir _;/path/to/image.jpg。你确定你的目标指向正确的路径吗?文件_使用本地路径存在,但图像的src使用URL路径。。。不一样。我猜uuu DIR_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;回响
// 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>';