2012-01-18 14 views
3

私は、さまざまなリモートサーバーからの多数のイメージを表示するページを持っています。 http://example.com/img/email_star0.png 'height =' 150 '/>壊れた画像を検出して別の画像に置き換える方法は?

この画像がないと仮定して、私は自分のhtmlで(x)を取得します。とにかく、このイメージが存在しないことを検出でき、Curlを使用してリモートサーバ上にファイルが存在するかどうかをチェックすることなく、この(x)をローカルイメージに置き換えて、時間を節約できますか?これはローカルで行うことができますか?あなたの助け

+0

をのでイメージがあるかどうかを検出する方法はありません(サーバー側で)利用可能であり、そうでない場合は、ローカルイメージと置き換えますか? – ppp

+0

@Davidどのようなチェックを行うには、有効なPHPの方法でしょうか? – ppp

答えて

15

はいこのイベントをONERROR使用可能です:

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

画像が存在しない場合は、代わりにXを表示するので、これはあなたのローカルフォルダにデフォルトの画像が表示されます

+0

WINのための曖昧なHTML属性!あなたは上司です! –

+1

+1私は今朝HTMLについて教えてくれます。 :-) – FtDRbwLXw6

+0

あなたの親切な礼状に感謝します:) – Ninja

2

ため

おかげで私はイメージがカールやjQueryのを使用せずに、リモートサーバー上に存在するかどうかを確認することが可能であるとは思いません。しかし、jQueryのスニペットは、ローカルのものと置き換えることで画像の読み込みエラーに反応します。おそらくそれはあなたが探しているものです。

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

ます「ONERROR」を使用することができ、画像タグに直接属性:

<img src="my_images.jpg" onerror="this.src='my_replacement.jpg'"> 
関連する問題