外部ファイルの存在の有無を確認するPHP

ドロップシッピングをやっていると、商品写真のリンクが切れていることがたまにあります。
こうなると、せっかく販売のページを作っていても商品写真が無いので、メンテされてないページだとの印象をもたれてしまいます。
こういう時、商品写真のURLが存在しない場合は、表示しないようにしておけば販売のページで、写真部分が歯抜けになることはなくなります。

で、その外部ファイルの存在の有無を確認するために、PHPでそのページが返すヘッダーを取得します。
HTTPステータスコードが200の時は真、それ以外は偽を返す関数を作って、使用した例が下記になります。

<?php
function url_exists($url){
    $header = @get_headers($url);
    if(preg_match('/^HTTP¥/.*¥s+200¥s/i',$header[0])){
        return true;
    }
    return false;
}
 
$url = 'http://example.com/hoge.jpg';
if(url_exists($url)){
    echo '<img src="' . $url . '",width="100",height="100",alt="hogeの写真" />';
}else{
    echo "この商品の画像はありません。";
}
?>

※ページのレイアウトが崩れないように、CSSを用いて、画像が無くてもその画像の大きさ分空けておく必要があります。

  • 人気ブログランキングへ
  • FC2ランキングへ
  • ブログランキング・にほんブログ村へ
  • おきてがみ

関連記事

カテゴリー:PHP
タグ:

2 個のコメント

  1. まさお
    Posted 2011年12月16日 at 6:52 AM | Permalink


    ttp://www.php.net/manual/ja/function.file-exists.php
    にある、06-Aug-2008 12:41 のが動かなく、他のも駄目っぽいので困ってました。
    ばっちり動きました ありがとうございます

  2. Posted 2011年12月16日 at 7:50 AM | Permalink

    まさおさん、
    コメント有難うございます。
    お役に立てて光栄です。

コメントを残す