アドレスが存在しない画像を表示しようとすると、デフォルト ブラウザの「画像なし」バッジが表示されます。
デフォルトの「no-image.png」プレースホルダーに変更するにはどうすればよいですか?
echo "<img src='http://www.google.com/trolol.png'>"; //for example
属性を使用できonerror
ます。例:
<img src="" onerror="this.src = 'no-image.png';" alt="" />
<img src='http://www.google.com/trolol.png' onerror="this.src='http://jsfiddle.net/img/logo.png'">
サンプルhttp://jsfiddle.net/UPdZh/1/
onerror イベントは、外部ファイル (ドキュメントや画像など) の読み込み中にエラーが発生した場合にトリガーされます。
構文
<element onerror="SomeJavaScriptCode">
<?php
$filename = 'http://www.google.com/trolol.png';
if (file_exists($filename)) {
echo "<img src='".$filename."'>";
} else {
echo "<img src='no-image.png'>";
}
?>
あなたがPHPソリューションを求めたように:
if (file_exists($filename)) {
echo "i_exist.jpg";
} else {
echo "fallback.jpg";
}
重要: リモート ファイルではなく、ローカル ファイルに対してのみ機能します。Szymon さん、コメントありがとうございます!
これを試して
<?php
$filename = 'http://www.google.com/trolol.png';
if (file_exists($filename)) {
echo "The file $filename exists";
} else {
echo "The file $filename does not exist";
}
?>