この記事では、PHP CURL でヘッダーとボディ情報を分離するテスト例を詳しく紹介します。これまで気付かなかったかもしれませんが、後ほど分析したので、以下に紹介します。
PHPではcurlを使用してhttpリクエストをシミュレートすると同時に、httpレスポンスヘッダとボディを取得することができます。もちろん、どちらか一方のみを取得するようにパラメータを設定することもできます。レスポンスヘッダとボディを同時に取得する設定の場合、結果としてヘッダとボディをまとめて返します。現時点では、それらを自分で分離する必要があります。
次のコードは、Google への http GET リクエストをシミュレートします
コードは次のとおりです | コードをコピー |
関数 httpGet() { $ch =curl_init(); $result =curl_exec($ch); if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == '200') { NULL を返す; |
上記のメソッドを呼び出すと、次のような出力が表示されます:
HTTP/1.1 200 OK
日付: 2013 年 7 月 9 日火曜日 14:21:08 GMT
有効期限: -1
キャッシュ制御: プライベート、max-age=0
コンテンツタイプ: text/html;
Set-Cookie: PREF=ID=75e996a7ad21f47b:FF=0:NW=1:TM=1373379668:LM=1373379668:S=TTLQQN-jwGDYnkkY; 期限切れ=木、09-7月-2015 14:21:08 GMT パス= /; ドメイン=.google.com.hk
Set-Cookie: NID=67=PPu7FfFeuZqwfsrUifgzjidX4JZxxCPLe9xFHjdXhfHpzs3gaykFSH5uGXy2esWTlp_rdqIYkjFDMollzI_sA-8owxD3mDh6KCRwdMa9-g5VChj0E5XAGNjo9d-sZfLN; 有効期限=水2014 年 1 月 8 日 14:21:08 GMT; ドメイン=.google.com.hk;
P3P: CP="これは P3P ポリシーではありません。詳細については、http://www.google.com/support/accounts/bin/answer.py?hl=ja&answer=151657 をご覧ください。"
サーバー: gws
X-XSS 保護: 1; モード = ブロック
X フレーム オプション: SAMEORIGIN
転送エンコーディング: チャンク化