首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >损坏图像链接的图像占位符?

损坏图像链接的图像占位符?
EN

Stack Overflow用户
提问于 2015-10-20 07:45:58
回答 2查看 502关注 0票数 4

目前,用户可以将图像上传到我的站点,并且图像的位置存储在MySQL表中。

当我用SELECT函数调用图像时,它们将通过CSS样式background-image:url('image.jpg')加载。

目前,我使用了一个IF语句,它将占位符图像放在列"Image_URL“设置为NULL的任何行的位置。

代码语言:javascript
复制
if ($row["Image"] != "") {                  
                    echo "<td width='200' rowspan='3'><center><a href='/uploads/".$row["Image"]."' target='_blank'><div class='image-cropper'><div class='rounded' style='background-image:url(\"/uploads/".$row["Image"]."\")'>";
                } else {
                    echo "<td width='200' rowspan='3'><center><a><div class='image-cropper'><div class='rounded' style='background-image:url(\"/images/no-image.jpg\")'";
                }

但是,我的方法不适用于错误链接(原始图像已被删除,或者由于某种原因,链接是错误的)。它只是显示空白,我可以理解为什么,因为$row" image“!= NULL,那里有一个链接,只是没有链接到一个图像。

在提供的链接中没有找到图像时,是否有方法加载我的占位符图像no-image.jpg?

我的DIVs只是使我的图像循环和居中,所以我在这里张贴它们,以防有帮助,您可以帮助我调整这些类来添加占位符功能。

代码语言:javascript
复制
.image-cropper {
    max-width: 150px;
    height: auto;
    position: relative;
    overflow: hidden;
}
.rounded {
    display: block;
    margin: 0 auto;
    height: 150px;
    width: 150px;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    -ms-border-radius: 50%;
    -o-border-radius: 50%;
    border-radius: 50%;
    background:center no-repeat;
    background-size:cover;
}

图片裁剪器和圆角DIV实际上是从这个网站,所以感谢您的赫拉尔

EN

回答 2

Stack Overflow用户

发布于 2015-10-20 13:28:47

在尝试使用file_exists之后,我设法让它使用了glob

但是,感谢Stewartside使我走上了正确的道路,并构造了最终的if语句。

这就是现在的代码:

代码语言:javascript
复制
$image = $row["Image"];
if ($row["Image"] != "") {  
    if (file_exists('uploads/'.$image)) {               
        echo "<td width='200' rowspan='3'><center><a href='/uploads/".$row["Image"]."' target='_blank'><div class='image-cropper'><div class='rounded' style='background-image:url(\"/uploads/".$row["Image"];
    } else {
        echo "<td width='200' rowspan='3'><center><a><div class='image-cropper'><div class='rounded' style='background-image:url(\"/images/no-image.jpg";
    }
    } else {
        echo "<td width='200' rowspan='3'><center><a><div class='image-cropper'><div class='rounded' style='background-image:url(\"/images/no-image.jpg";
}

我认为以下几点也会奏效:

代码语言:javascript
复制
    if (file_exists('uploads/'.$row["Image"])) {    

谢谢大家的帮助!)

票数 1
EN

Stack Overflow用户

发布于 2015-10-20 08:02:08

您可以使用一个glob()函数来确定文件是否存在。

类似于这样的东西:

代码语言:javascript
复制
if ($row["Image"] != "") {
  var $file = glob("/uploads/".$row["Image"]); 
  if (count($file) > 0) {
    echo "<td width='200' rowspan='3'><center><a href='/uploads/".$row["Image"]."' target='_blank'><div class='image-cropper'><div class='rounded' style='background-image:url(\"/uploads/".$row["Image"]."\")'>";
  } else {
    echo "<td width='200' rowspan='3'><center><a><div class='image-cropper'><div class='rounded' style='background-image:url(\"/images/no-image.jpg\")'";
  }
} else {
  echo "<td width='200' rowspan='3'><center><a><div class='image-cropper'><div class='rounded' style='background-image:url(\"/images/no-image.jpg\")'";
}
  • PHP文档- Glob
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33230849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档