【问题标题】:How to detect broken image and replace with another?如何检测损坏的图像并用另一个替换?
【发布时间】:2012-02-13 05:15:56
【问题描述】:

我有一个页面显示来自不同远程服务器的大量图像。 http://example.com/img/email_star0.png' height='150' />

现在假设这张图片不存在,我在我的 html 中得到一个 (x)。无论如何,我是否可以检测到此图像不存在并用本地图像替换此(x),而无需使用 Curl(或使用 JQuery)检查文件是否存在于远程服务器上,从而节省时间?这可以在本地完成吗?

感谢您的帮助

【问题讨论】:

  • 所以没有办法检测图像是否可用(在服务器端),如果不可用,用本地图像替换它?
  • @David 进行该检查的有效 php 方法是什么?

标签: php html


【解决方案1】:

你可以直接在图片标签中使用'onerror'属性:

<img src="my_images.jpg" onerror="this.src='my_replacement.jpg'">

【讨论】:

    【解决方案2】:

    是的,这可以使用 onerror 事件:

    <img src="your_image_source" onerror="this.src='/path/to/local/file'">
    

    如果图像不存在,而不是显示 X,这将显示本地文件夹中的默认图像

    【讨论】:

    • WIN! 的模糊 HTML 属性!你是老板!!
    • 感谢您的赞美 :)
    • 感谢所有回答,抱歉回复晚了
    • 嗨,这仅适用于我将绝对路径放入图像的情况下,即。从域根。这有什么原因吗?如何使用类似于原始(损坏)图像的相对路径?谢谢
    【解决方案3】:

    我认为不使用 curl 或 jQuery 就无法检查远程服务器上是否存在图像。但是 jQuery sn-p 波纹管通过将其替换为本地错误来对图像加载错误做出反应,也许这就是您正在寻找的。​​p>

    $(document).ready(function(){
      $('img').error(function(){
         $(this).attr('src', 'http://mysite/myimage.jpg');
      });
    });
    

    【讨论】:

      猜你喜欢
      • 2012-04-13
      • 2010-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-08
      • 2012-02-09
      • 2014-06-28
      相关资源
      最近更新 更多