我有一個嵌入來自Imgur.com的圖像的網站,如果顯示默認imgur錯誤圖像,我想要一個將顯示自定義404圖像的代碼。檢查圖像是否相同
,我要檢查,如果它顯示的錯誤圖像http://i.imgur.com/ffffffffffff.jpg
我有一個嵌入來自Imgur.com的圖像的網站,如果顯示默認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.在他/她的帖子中回答的內容。
希望這有助於:-)
嘗試,並幫助人們幫助你通過提供圖像和URL的例子... – Layke 2012-07-14 16:34:21
您可以生成404圖像文件的MD5和比較。 – 2012-07-14 16:34:31
你到底想做什麼?看看圖像是否相同,然後如果他們是相同的顯示自定義404圖像或...你只想把自定義404圖像,如果你的圖像之一無法加載或無法找到 – 2012-07-14 16:54:41