ホームページ  >  記事  >  バックエンド開発  >  phpカールでヘッダーと本文の情報を分離する_PHPチュートリアル

phpカールでヘッダーと本文の情報を分離する_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 16:57:272118ブラウズ

この記事では、PHP CURL でヘッダーとボディ情報を分離するテスト例を詳しく紹介します。これまで気付かなかったかもしれませんが、後ほど分析したので、以下に紹介します。

PHPではcurlを使用してhttpリクエストをシミュレートすると同時に、httpレスポンスヘッダとボディを取得することができます。もちろん、どちらか一方のみを取得するようにパラメータを設定することもできます。レスポンスヘッダとボディを同時に取得する設定の場合、結果としてヘッダとボディをまとめて返します。現時点では、それらを自分で分離する必要があります。

次のコードは、Google への http GET リクエストをシミュレートします

コードは次のとおりです コードをコピー

関数 httpGet() {
$url = 'http://www.google.com.hk';

$ch =curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, TRUE); // 応答ヘッダーの必要性を示します
curl_setopt($ch, CURLOPT_NOBODY, FALSE); // レスポンスボディの必要性を示します
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
curl_setopt($ch, CURLOPT_TIMEOUT, 120);

$result =curl_exec($ch);

if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == '200') {
return $result;
}

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
転送エンコーディング: チャンク化

Google