无法使 file_exists 函数在 PHP 中工作

Can't make the file_exists function work in PHP

我遇到了问题。

我实际上有这个代码:

// 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)) { ... } 测试过了。一样。

为什么?

即使您的文件位于某个目录,也不意味着 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>';

?>

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

$_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>';