PHP cURL は、単一のリクエストでレスポンス ヘッダーと本文を取得できますか? 質問する

PHP cURL は、単一のリクエストでレスポンス ヘッダーと本文を取得できますか? 質問する

PHP を使用して cURL リクエストのヘッダーと本文の両方を取得する方法はありますか? このオプションを見つけました:

curl_setopt($ch, CURLOPT_HEADER, true);

本文とヘッダーを返しますが、本文を取得するには解析する必要があります。両方をより使いやすく (そして安全に) 取得する方法はありますか?

「単一のリクエスト」とは、GET/POST の前に HEAD リクエストを発行しないようにすることを意味します。

ベストアンサー1

この問題に対する解決策の 1 つが PHP ドキュメントのコメントに投稿されました。http://www.php.net/manual/en/function.curl-exec.php#80442

コード例:

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
// ...

$response = curl_exec($ch);

// Then, after your curl_exec call:
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$body = substr($response, $header_size);

警告:以下のコメントに記載されているように、プロキシ サーバーを使用する場合や、特定の種類のリダイレクトを処理する場合は、この方法が信頼できない可能性があります。@Geoffrey の回答では、これらをより確実に処理できる可能性があります。

おすすめ記事