-3

Imgur.com から画像を埋め込む Web サイトがあり、デフォルトの 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 に答える