ホームページ >バックエンド開発 >PHPチュートリアル >PHP で cURL リクエストからヘッダーと本文の両方を抽出するにはどうすればよいですか?

PHP で cURL リクエストからヘッダーと本文の両方を抽出するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-20 01:07:17477ブラウズ

How Can I Extract Both Headers and Body from a cURL Request in PHP?

PHP での cURL リクエストからのヘッダーと本文の抽出

PHP cURL ライブラリは、HTTP リクエストを送信する便利な方法を提供します。デフォルトでは、cURL は応答本文のみを取得します。ただし、個別の HEAD リクエストを発行せずに、1 つのリクエストでヘッダーと本文の両方にアクセスする必要がある状況が発生する場合があります。

解決策: ヘッダーと本文を分離する

単一の cURL リクエストでヘッダーと本文の両方を取得するには、次を利用できます。手順:

  1. 次のオプションを指定して、curl_exec() で cURL リクエストを実行します:

    • CURLOPT_RETURNTRANSFER: 応答を文字列として返すには、1 に設定します。
    • CURLOPT_HEADER: 応答を含めるには 1 に設定します。
  2. リクエストの実行後、$response を使用してレスポンスを取得します。
  3. curl_getinfo($ch, CURLINFO_HEADER_SIZE) を使用して HTTP ヘッダーのサイズを計算します。それを $header_size に保存します。
  4. からヘッダーを抽出します。 $header_size までの部分文字列を取得する $response。ヘッダーを $header に保存します。
  5. $header_size から文字列の末尾までの部分文字列を取得して、$response から本文を抽出します。本文を $body に保存します。

コード例:

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

$response = curl_exec($ch);

$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$body = substr($response, $header_size);

注: このメソッドは使用できない場合があることに注意してください。あらゆる場合において、特にプロキシ サーバーや特定の種類のリダイレクトを処理する場合に信頼性が高くなります。

以上がPHP で cURL リクエストからヘッダーと本文の両方を抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。