如果src为空,则显示占位符图像


Displaying placeholder image if src is empty

嘿,伙计们,我有这段代码,我正试图在src=""为空的情况下显示一个图像。

我正在使用!empty来尝试显示我的占位符图像,如您所见:

<img src="'.
    (!empty( $cardata["PictureRefs"]))
    ? (explode(',', $cardata["PictureRefs"])[0])
    : "db-content/theme/media/img/no-image.jpg" . '" data-src="'.
      (explode(',', $cardata["PictureRefs"])[0]) .'" alt="'.$cardata["Variant"].'"/> 
<img class="ms-thumb" src="'.
    (!empty( $cardata["PictureRefs"]))
    ? (explode(',', $cardata["PictureRefs"])[0])
    : "db-content/theme/media/img/no-image.jpg" .'" alt="'.$cardata["Variant"].'" />

由于某种原因,这在我的页面上不起作用,它只是打断了页面。

知道我哪里可能出错了吗?我只剩下PDO从DB中获取的外部url,该url以文本形式显示在页面上。

代码:

<?php $src = "db-content/theme/media/img/no-image.jpg";
        if(!empty( $cardata["PictureRefs"])){
        $src = explode(',', $cardata["PictureRefs"])[0];
        }
        $dataSrc = explode(',', $cardata["PictureRefs"])[0]; ?>
            <?php echo '
                <div class="ms-slide">
                    <img src="'.$src.'" data-src="'.$dataSrc.'" alt="'.$cardata["Variant"].'"/>
                    <img class="ms-thumb" src="'.(explode(',', $cardata["PictureRefs"])[0]).'" alt="'.$cardata["Variant"].'" />
                </div>' ?>

它只是显示它最初试图接收的图像的404。

虽然我不知道出了什么问题,但我重构了第一个图像的代码,以便更容易阅读并帮助他人理解:

$src = "db-content/theme/media/img/no-image.jpg";
if(!empty( $cardata["PictureRefs"])){
    $src = explode(',', $cardata["PictureRefs"])[0];
}
$dataSrc = explode(',', $cardata["PictureRefs"])[0];
echo '<img src="'.$src.'" data-src="'.$dataSrc.'" alt="'.$cardata["Variant"].'"/>';

您使用的是PHP 5.5或更高版本吗?以这种方式(根据分解函数的结果)取消数组引用需要PHP 5.5或更高版本。

查看结果页面的来源并发布可能会很有用。