【问题标题】:Can't make the file_exists function work in PHP无法使 file_exists 函数在 PHP 中工作
【发布时间】:2018-01-18 20:44:51
【问题描述】:

我遇到了问题。

我实际上有这个代码:

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

为什么?

【问题讨论】:

  • 不要随意使用抑制错误的YOLO算子(@)。而是先测试文件是否存在。为什么这样做$src=$src?检查if (!file_exists(...))
  • 你的$src = $src; 没有意义。
  • $src = $src; ... 真的吗?
  • @tadman 直到现在我才听说它被认为是“YOLO 操作员”,我喜欢它。
  • 尝试使用绝对路径,例如__dir__ . '/../path/to/image.jpg。你确定你指向正确的路径吗? file_exists() 使用本地路径,但图片的 src 使用“URL”路径...不一样。

标签: php file-exists


【解决方案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>';

【讨论】:

  • 我猜__DIR__ 将无法进入src 属性。
  • 现在更好了:)
  • $dir = __DIR__.'../assets/app/images'; echo '&lt;center&gt;&lt;img src="'.$dir.(file_exists("$dir/007.jpg") ? "/007" : "/default") .'.jpg" width="200"&gt;&lt;/center&gt;';
【解决方案2】:

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

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

?>

【讨论】:

    【解决方案3】:

    好的,我可以使用:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-26
      • 2012-07-08
      • 1970-01-01
      • 2011-09-03
      • 2018-12-22
      • 2013-02-17
      • 2011-05-22
      • 1970-01-01
      相关资源
      最近更新 更多