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

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 までご連絡ください。
どのデータをPHPセッションに保存できますか?どのデータをPHPセッションに保存できますか?May 02, 2025 am 12:17 AM

phpssionscanStorestrings、numbers、arrays、andobjects.1.strings:textdatalikeusernames.2.numbers:integersorfloatsforcounters.3.arrays:listslikeshoppingcarts.4.objects:complextructuresthataresialized。

どのようにPHPセッションを開始しますか?どのようにPHPセッションを開始しますか?May 02, 2025 am 12:16 AM

tostartaphpsession、outsession_start()atthescript'sbeginning.1)placeitbe foreanyouttosetthesscookie.2)usesionsionsionsionserdatalikelogintatussorshoppingcarts.3)再生セッションインドストップレベントフィックスアタック

セッションの再生とは何ですか?また、セキュリティをどのように改善しますか?セッションの再生とは何ですか?また、セキュリティをどのように改善しますか?May 02, 2025 am 12:15 AM

セッション再生とは、新しいセッションIDを生成し、セッション固定攻撃の場合にユーザーが機密操作を実行するときに古いIDを無効にすることを指します。実装の手順には次のものが含まれます。1。感度操作を検出、2。新しいセッションIDを生成する、3。古いセッションIDを破壊し、4。ユーザー側のセッション情報を更新します。

PHPセッションを使用する際のパフォーマンスの考慮事項は何ですか?PHPセッションを使用する際のパフォーマンスの考慮事項は何ですか?May 02, 2025 am 12:11 AM

PHPセッションは、アプリケーションのパフォーマンスに大きな影響を与えます。最適化方法には以下が含まれます。1。データベースを使用してセッションデータを保存して応答速度を向上させます。 2。セッションデータの使用を削減し、必要な情報のみを保存します。 3.非ブロッキングセッションプロセッサを使用して、同時実行機能を改善します。 4.セッションの有効期限を調整して、ユーザーエクスペリエンスとサーバーの負担のバランスを取ります。 5.永続的なセッションを使用して、データの読み取り時間と書き込み時間を減らします。

PHPセッションはCookieとどのように異なりますか?PHPセッションはCookieとどのように異なりますか?May 02, 2025 am 12:03 AM

phpsesionsareserver-side、whilecookiesareclient-side.1)Sessionsionsionsoredataontheserver、aremoresecure.2)cookiesstoredataontheclient、cookiestoresecure、andlimitedinsizeisize.sesionsionsionivationivationivationivationivationivationivationivate

PHPはユーザーのセッションをどのように識別しますか?PHPはユーザーのセッションをどのように識別しますか?May 01, 2025 am 12:23 AM

phpidentifiesauser'ssessionsingsinssessionCookiesIds.1)whensession_start()iscalled、phpgeneratesauniquesidstoredsored incoookienadphpsessidontheuser'sbrowser.2)thisidallowsphptortorieSessiondatadata fromthata

PHPセッションを保護するためのベストプラクティスは何ですか?PHPセッションを保護するためのベストプラクティスは何ですか?May 01, 2025 am 12:22 AM

PHPセッションのセキュリティは、次の測定を通じて達成できます。1。session_regenerate_id()を使用して、ユーザーがログインまたは重要な操作である場合にセッションIDを再生します。 2. HTTPSプロトコルを介して送信セッションIDを暗号化します。 3。Session_Save_Path()を使用して、セッションデータを保存し、権限を正しく設定するためのSecure Directoryを指定します。

PHPセッションファイルはデフォルトで保存されていますか?PHPセッションファイルはデフォルトで保存されていますか?May 01, 2025 am 12:15 AM

phpsessionFilesToredInthededirectoryspecifiedBysession.save_path、通常/tmponunix-likesystemsorc:\ windows \ temponwindows.tocustomizethis:1)uesession_save_path()tosetaCustomdirectory、ensuringit'swritadistradistradistradistradistra

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!