Imgur.com から画像を埋め込む Web サイトがあり、デフォルトの imgur エラー画像が表示された場合にカスタム 404 画像を表示するコードが必要です。
表示されているか確認したいエラー画像はhttp://i.imgur.com/ffffffffffff.jpg
Imgur.com から画像を埋め込む Web サイトがあり、デフォルトの imgur エラー画像が表示された場合にカスタム 404 画像を表示するコードが必要です。
表示されているか確認したいエラー画像はhttp://i.imgur.com/ffffffffffff.jpg
ファイルをハッシュしてから比較できます。
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
}
リンクから 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. が投稿で回答したことを実行できます。
お役に立てれば :-)