「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > PHP から GET リクエストを送信する方法

PHP から GET リクエストを送信する方法

2024 年 8 月 29 日に公開
ブラウズ:745

How to Send a GET Request from PHP

PHP: PHP (ハイパーテキスト プリプロセッサ) は、Web 開発用に特別に設計された、広く使用されているオープンソースのサーバー側スクリプト言語です。元々は 1994 年に Rasmus Lerdorf によって作成され、それ以来、世界中の何百万もの開発者によって使用される強力な言語に進化しました。

PHP は主に動的な Web ページや Web アプリケーションを開発するために使用されます。これにより、開発者は HTML 内に PHP コードを埋め込むことができ、サーバー側のロジックとプレゼンテーション層を簡単に混合できるようになります。 PHP スクリプトはサーバー上で実行され、結果の HTML がクライアントのブラウザーに送信されます。

PHP では、さまざまなメソッドを使用して、別のサーバーに GET リクエストを送信したり、API からデータを取得したりできます。一般的な 3 つのアプローチを次に示します。

  • file_get_contents() の使用

  • cURL の使用

  • Guzzle HTTP クライアントの使用

file_get_contents() の使用

PHP で file_get_contents() 関数を使用して GET リクエストを送信するには、

次の手順に従ってください:

URLを定義します

$url 変数を、GET リクエストの送信先となる URL に設定します。プロトコル (http:// または https:// など) が含まれていることを確認してください。

GET リクエストを送信します

file_get_contents() 関数を使用して GET リクエストを送信し、応答を取得します。この関数は URL をパラメータとして受け取り、応答を文字列として返します。

応答には、HTML、JSON、XML、プレーン テキストなど、サーバーから返された任意のコンテンツを含めることができます。

file_get_contents() 関数は、ヘッダーやコンテキスト オプションなど、リクエストをカスタマイズするための追加パラメーターを受け入れることもできます。基本的な GET リクエストの場合、通常は URL パラメータで十分です。

応答を処理する

file_get_contents() からの応答は、$response 変数に保存されます。アプリケーションの要件に従って応答を処理できます。

例えば

または、JSON の解析や応答からの特定の情報の抽出など、さらなる処理を実行します。

注: GET リクエストに file_get_contents() を使用する場合は、PHP 設定でallow_url_fopen オプションが有効になっていることを確認してください。そうしないと、この機能がリモート URL に対して機能しない可能性があります。

file_get_contents() は、リダイレクトの処理、ヘッダーの設定、または認証の処理を必要とするより複雑なリクエストには適していない可能性があることに注意することが重要です。このような場合は、cURL や Guzzle などのより堅牢な HTTP クライアント ライブラリを使用することをお勧めします。

ネットワークの問題や無効な URL など、GET リクエスト中に発生する可能性のある潜在的なエラーや例外を必ず処理し、適切なエラー処理メカニズムを実装してください。

cURL の使用

PHP で cURL を使用して GET リクエストを送信するには、次の手順に従います。

URLを定義します

$url 変数を、GET リクエストの送信先となる URL に設定します。プロトコル (http:// または https:// など) が含まれていることを確認してください。

cURLを初期化

curl_init() を使用して新しい cURL リソースを作成し、そのパラメータとして URL を渡します。これにより、cURL セッションが初期化され、リクエストのターゲット URL が設定されます。

オプションを設定

curl_setopt() を使用して、cURL リクエストのさまざまなオプションを設定します。この場合、CURLOPT_RETURTRANSFER を使用して、応答を直接出力するのではなく文字列として返すように cURL に指示します。

ヘッダー、タイムアウト、リダイレクトの処理など、要件に基づいて追加のオプションを設定できます。

リクエストを実行します

curl_exec() を使用して cURL リクエストを実行し、レスポンスを取得します。この関数は GET リクエストを実行し、応答を文字列として返します。

cURL セッションを終了します

リクエストを実行してレスポンスを取得した後、curl_close() を使用して cURL セッションを閉じ、システム リソースを解放します。

応答を処理する

cURL リクエストからの応答は、$response 変数に保存されます。 JSON の解析や応答からの特定の情報の抽出など、必要に応じて応答を処理できます。

例えば:

または、応答のコンテンツ タイプまたは構造に基づいてさらなる処理を実行します。

cURL リクエスト中に発生する可能性のある潜在的なエラーまたは例外を必ず処理し、適切なエラー処理メカニズムを実装してください。

cURL は、カスタム ヘッダーの設定、認証の処理、Cookie の処理など、多くの高度な機能を提供します。より高度な使用例やオプションについては、cURL ドキュメントまたは PHP の cURL 関数を参照してください。

Guzzle HTTP クライアントの使用

PHP で Guzzle HTTP クライアント ライブラリを使用して GET リクエストを送信するには、次の手順に従います。

Guzzle をインストール

Guzzle を使用する前に、Composer などのパッケージ マネージャーを使用してインストールする必要があります。コマンド ライン インターフェイスを開き、プロジェクト ディレクトリに移動します。次に、次のコマンドを実行して Guzzle をインストールします。

バッシュ

作曲家には guzzle が必要ですhttp/guzzle

このコマンドは、Guzzle ライブラリとその依存関係をダウンロードしてインストールします。

PHP ファイルで Guzzle を使用する

PHP ファイルでは、Guzzle クラスをロードするために Composer によって生成されたオートローダー ファイルを要求する必要があります。

php

'vendor/autoload.php' が必要です。

GET リクエストを送信する

これで、Guzzle HTTP クライアントを使用して GET リクエストを送信できるようになりました。以下に例を示します。

get($url)->getBody()->getContents();
?>

この例では、Guzzle の Client クラスを使用して新しいクライアント インスタンスを作成します。 get() メソッドはクライアント インスタンスで呼び出され、URL をパラメータとして渡します。 get() メソッドは、指定された URL に GET リクエストを送信します。

getBody() メソッドは応答本文をストリーム オブジェクトとして取得し、getContents() はストリームの内容を読み取って文字列として返します。

応答を処理する

GET リクエストからの応答は、$response 変数に保存されます。 JSON の解析や応答からの特定の情報の抽出など、アプリケーションのニーズに応じて応答を処理できます。

例えば:

または、応答のコンテンツ タイプまたは構造に基づいてさらなる処理を実行します。

Guzzle は、リダイレクトの処理、リクエスト ヘッダーの設定、認証の処理、リクエスト パラメータの送信など、多くの高度な機能とオプションを提供します。 Guzzle の機能の詳細については、Guzzle のドキュメントを参照してください。

リクエスト中に発生する可能性のある例外を処理し、適切なエラー処理メカニズムを実装することを忘れないでください。

Guzzle を使用すると、PHP での HTTP リクエストの送信と応答の処理プロセスを簡素化する、強力で柔軟な HTTP クライアント ライブラリを活用できます。

結論

利用可能な PHP 拡張機能とリクエストの複雑さに基づいて、ニーズに最も適した方法を選択してください。どちらのアプローチでも、GET リクエストを送信してレスポンスを取得でき、アプリケーションの要件に基づいてさらに処理または処理できます。

リリースステートメント この記事は次の場所に転載されています: https://www.tutorialspoint.com/how-to-send-a-get-request-from-php 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3