« ポートレイト: 松本あやかさん 8 その3 | メイン | ポートレイト: 松本あやかさん 8 その4 »
2013年2月18日
get_headersはURLにアクセスしてステータスを得ている。 >>PHP
えーと、これは・・・と思うコードに当たりましたので、一言書いておきます...。
get_headers、これはHTTPステータス、Headerを取得します。
よく考えましょう・・・。「ヘッダが取得できるっていうことはWebサーバにアクセスしてる」っていうことですね? そうでなければ、何をしてHTTP Statusを取得しているのでしょうか。
何かしら外部からパラメータをサーバに投げるなどの処理をする場合2回URLを叩いてることになります。ということで、こういう書き方、動かし方はしちゃいけない悪コード例、ということになります。
http://php.net/manual/ja/reserved.variables.httpresponseheader.php
エラーハンドリングについては.....おしらべください。。。
get_headers、これはHTTPステータス、Headerを取得します。
よく考えましょう・・・。「ヘッダが取得できるっていうことはWebサーバにアクセスしてる」っていうことですね? そうでなければ、何をしてHTTP Statusを取得しているのでしょうか。
何かしら外部からパラメータをサーバに投げるなどの処理をする場合2回URLを叩いてることになります。ということで、こういう書き方、動かし方はしちゃいけない悪コード例、ということになります。
$data = http_build_query($params); $header = Array("Content-Type: application/x-www-form-urlencoded"); $options = array('http' => Array( 'method' => $method, 'header' => implode("\r\n", $header), )); //ステータスをチェック / PHP5専用 get_headers() $respons = get_headers($url); if(preg_match("/(404|403|500)/",$respons['0'])){ return false; } if($method == 'GET') { $url = ($data != '')?$url.'?'.$data:$url; }elseif($method == 'POST') { $options['http']['content'] = $data; } $content = file_get_contents($url, false, stream_context_create($options)); return $content;対処としては、 file_get_contentsだけにして、$http_response_headerを評価するなど。
http://php.net/manual/ja/reserved.variables.httpresponseheader.php
エラーハンドリングについては.....おしらべください。。。
トラックバック
現在、この記事はトラックバックを受け付けておりません。
コメント
現在、この記事はコメントを受け付けておりません。