-3

我有一个嵌入来自 Imgur.com 的图像的网站,如果显示默认的 imgur 错误图像,我想要一个显示自定义 404 图像的代码。

我想检查它是否显示的错误图像是http://i.imgur.com/ffffffffffff.jpg

4

2 回答 2

4

您可以散列文件,然后比较它们:

if(md5_file($file1) === md5_file($file2)) 
{
    // the same images
} 
else 
{
    // different images
}

您可以使用相对或绝对路径。


如何检查是否显示默认错误图像?

if(md5_file("http://i.imgur.com/ffffffffffff.jpg") === md5_file("http://i.imgur.com/some-other-non-existent-image.jpg"))
{
    //display your error image
} 
于 2012-07-14T17:27:53.120 回答
0

只是要知道,似乎如果无法从链接中找到 imgur 图像,则该链接将始终加载带有消息的自定义图像:

the image you are requesting does not exist or is no longer available.

因此,如果找不到图像,则会将其替换为来自 imgur 的自定义图像。

当图像不再可用、无法加载或发生其他事情时,问题就开始了,然后您将获得典型的损坏图像,如下所示:

在此处输入图像描述

代码:

好吧,为了解决这个问题,我为你做了这个例子:

(我假设为了获取 imgur 图像,您正在从 imgur 用户下载源代码,然后恢复所有图像链接并将它们放入数组中。这就是我从那时开始的原因)

<?php
/* Array with Imgur images */
$imgArray = array('http://i.imgur.com/Uqotub.jpg', 'http://i.imgur.com/kPQFgb.jpg', 
'http://i.imgur.com/7teVGb.jpg', 'http://i.imgur.com/lnCZIb.jpg', 'http://i.imgur.com/sn6Ayb.jpg');

/* Imgur custom 404 image */
$customImg = 'http://i.imgur.com/404.jpg';

/* Do a loop for your images, if a valid image was found and loaded, 
 * you will have the following array from imgData: 
 * Array ( [0] => 160 [1] => 160 [2] => 2 [3] => width="160" height="160" [bits] => 8 [channels] => 3 [mime] => image/jpeg )
 */
foreach ($imgArray as $index => $value) {

    $imgData = getimagesize($value);

    /* if $imgData is an array means that image loaded ok */
    if(is_array($imgData)) {
        echo '<img src="'.$value.'"/>';
    /* else $imgData is nothing because image is broken or not available, 
     * now you pass the custom image */
    } else {
        echo '<img src="'.$customImg.'"/>';
    }
}
?>

结果:

在此处输入图像描述

PS。你的问题我不清楚。因此,如果您尝试检查图像是否相同或其他内容,您可以执行 Nikola K. 在他/她的帖子中回答的问题。

希望这可以帮助 :-)

于 2012-07-14T18:04:31.623 回答