ホームページ >バックエンド開発 >PHPチュートリアル >PHP での HTTP リクエストとレスポンスの処理

PHP での HTTP リクエストとレスポンスの処理

WBOY
WBOYオリジナル
2023-05-23 11:40:511805ブラウズ

PHP は、Web 開発で一般的に使用されるスクリプト言語です。 Web 開発では、HTTP プロトコルは重要なコンポーネントです。 PHP 開発者にとって、HTTP リクエストの送信方法と HTTP レスポンスの処理方法を知ることは、必要なスキルの 1 つです。この記事では、PHP での HTTP リクエストとレスポンスの処理について説明します。

  1. HTTP リクエストの送信

PHP では、curl または file_get_contents を使用して HTTP リクエストを送信できます。

1.1curl

curl はデータを送信するためのオープンソース ツールであり、複数のプロトコルをサポートしています。 PHP では、curl ライブラリを使用して HTTP リクエストを送信できます。以下は、curl が HTTP GET リクエストを送信する例です。

$url = 'http://example.com/api/get_user_info?user_id=123'; // 请求地址
$ch = curl_init(); // 初始化curl对象
curl_setopt($ch, CURLOPT_URL, $url); // 设置请求地址
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 执行curl_exec后不直接输出结果,而是返回给变量
curl_setopt($ch, CURLOPT_TIMEOUT, 10); // 设置超时时间为10秒
$result = curl_exec($ch); // 执行请求,获取结果
curl_close($ch); // 关闭curl对象

上記のコードでは、curl_init() を通じてcurl オブジェクトが作成され、リクエスト アドレスやタイムアウト時間などのパラメータが設定され、最後にcurl_exec () はリクエストの送信と結果の取得に使用されます。 POST リクエストを送信する必要がある場合は、CURLOPT_POST パラメータを設定し、POST リクエストのパラメータを渡すように CURLOPT_POSTFIELDS パラメータを設定する必要があります。

1.2 file_get_contents

file_get_contentsは、PHPが提供する、指定したファイルの内容を取得できる関数です。指定したファイルが URL の場合、この関数を使用して HTTP リクエストを送信できます。以下は、file_get_contents が HTTP GET リクエストを送信する例です。

$url = 'http://example.com/api/get_user_info?user_id=123'; // 请求地址
$context = stream_context_create(array('http' => array('timeout' => 10))); // 设置请求超时时间为10秒
$response = file_get_contents($url, false, $context); // 发送请求,获取结果

上記のコードでは、HTTP リクエストのタイムアウトを設定する stream_context_create() 関数を通じてコン​​テキスト ストリームが作成されます。次に、file_get_contents() 関数を使用して HTTP リクエストを送信し、応答結果を取得します。

  1. HTTP 応答の処理

HTTP 要求を送信した後、応答を処理する必要があります。 HTTP 応答には、応答ヘッダーと応答本文の 2 つの部分が含まれます。応答ヘッダーには、応答コード、応答時間、応答タイプなど、サーバーから返されるいくつかのメタデータ情報が含まれています。応答本文は、特定の返されるコンテンツです。

2.1 応答ヘッダーの処理

PHP では、get_headers() 関数を使用して HTTP 応答ヘッダーを取得できます。以下は、get_headers() 関数を使用して応答ヘッダーを取得する例です。

$url = "http://example.com"; // 请求地址
$headers = get_headers($url, 1); // 获取HTTP响应头
print_r($headers); // 输出响应头

上記のコードでは、get_headers() 関数を使用して、要求アドレスの HTTP 応答ヘッダーを取得し、結果は変数 $headers となり、変数 が出力されます。

2.2 応答本文の処理

PHP では、curl 関数または file_get_contents 関数を使用して HTTP 応答本文を取得できます。

2.2.1curl

curl を使用して HTTP 応答本文を取得するプロセスは、HTTP リクエストを送信するプロセスと似ており、CURLOPT_RETURNTRANSFER パラメータを 1 に設定するだけです。以下は、curl を使用して HTTP 応答本文を取得する例です。

$url = 'http://example.com/'; // 请求地址
$ch = curl_init(); // 初始化curl对象
curl_setopt($ch, CURLOPT_URL, $url); // 设置请求地址
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 执行curl_exec后不直接输出结果,而是返回给变量
curl_setopt($ch, CURLOPT_TIMEOUT, 10); // 设置超时时间为10秒
$response = curl_exec($ch); // 执行请求,获取结果
curl_close($ch); // 关闭curl对象

上記のコードでは、curl を使用してリクエスト アドレスの HTTP 応答本文を取得し、結果は変数 $ に格納されます。応答。

2.2.2 file_get_contents

file_get_contents 関数を使用して HTTP 応答本文を取得する方法は、HTTP リクエストを送信する方法と似ており、リクエスト アドレスを直接アドレスとして使用するだけで済みます。関数のパラメータ。以下は、file_get_contents 関数を使用して HTTP 応答本文を取得する例です。

$url = 'http://example.com/'; // 请求地址
$context = stream_context_create(array('http' => array('timeout' => 10))); // 设置请求超时时间为10秒
$response = file_get_contents($url, false, $context); // 发送请求,获取结果

上記のコードでは、file_get_contents() 関数を使用して、リクエスト アドレスの HTTP 応答本文とその結果を取得します。変数 $response に格納されます。

概要:

HTTP プロトコルは Web 開発の重要な部分です。 PHP では、curl 関数または file_get_contents 関数を使用して、HTTP リクエストを送信し、応答結果を取得できます。 HTTP 応答結果が取得されたら、get_headers() 関数を使用して応答ヘッダーを取得し、curl または file_get_contents 関数を使用して応答本文を取得できます。 HTTP リクエストとレスポンスの処理に習熟することは、PHP 開発に必要なスキルです。

以上がPHP での HTTP リクエストとレスポンスの処理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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