file_get_contentsで$http_response_headerを使用するときの注意点

file_get_contentsを使用してwebからコンテンツを取得した時のレスポンスヘッダーは$http_response_headerで受け取れます。
ただし$http_response_headerはサーバに接続ができなかったときやレスポンスがなかった場合には変数の値が変わりません。
このため直前に接続が成功したfile_get_contentsのときの値と勘違いしてしまいがちなので注意が必要です。

// このURLで接続成功する
$response1 = file_get_contents($url1,false,$context);

// このURLで接続失敗する
$response2 = file_get_contents($url2,false,$context);

// 2番目ではなく1番目のレスポンスヘッダーが表示される
print_r($http_response_header);

これを防ぐためにfile_get_contentsの直前で$http_response_headerの値をnullなどにしたほうがいいです。

$http_response_header = null;
$response = file_get_contents($url,false,$context);

// 失敗していればnullになる
print_r($http_response_header);

関連記事

スポンサーリンク

: 何もせず,0を返す

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る