やったこと

webサービスを作るときに考えたことを垂れ流します

【Wordpress】wp_remote_get()で取得したコンテンツが画像かどうか判定!

ワードプレスのwp_remote_get()関数で取得したHTTPリクエストの中の「content-type」をチェックして、コンテンツが画像ファイルかどうかを判定します。

wp_remote_get()の戻り値の中には、こんな感じヘッダ情報が含まれています。

    [data:protected] => Array
        (
            [date] => Tue, 30 Aug 9999 00:00:00 GMT
            [content-type] => image/jpeg
            [content-length] => 123456
            [server] => nginx
            [cache-control] => max-age=2592000
            [s-maxage] => 2678400
            [accept-ranges] => bytes
            [age] => 25668
            [last-modified] =>  Tue, 30 Aug 9999 00:00:00 GMT
            [expires] =>  Tue, 30 Aug 9999 00:00:00 GMT
            [access-control-allow-origin] => *
        )


この中の「content-type」を読み込んで「image」という文字列がないかどうか、チェックします。

$img_url = "http://hogege.net/hoge.jpg";
$response = wp_remote_get($img_url, array( 'timeout' => 3 ));

if( is_wp_error( $response ) ) {
  echo "応答がありません!";
  return false;
}
if (!isset($response['body'])){
  echo "コンテンツがありません!";
  return false;
}

if (strpos($response['headers']['content-type'], 'image') !== false){
  echo "画像ファイルです!";
}else{
  echo "画像ファイルじゃありません!";
}

すごく適当な方法かもしれないけど、今はこれで良しとします・・。

以上!