Web 開発では、API のリクエスト、Web ページのクロールなど、時々他のサービスと対話する必要があります。 cURL は、HTTP リクエスト、FTP アップロードおよびダウンロードを実行するために使用できる非常に強力なツールです。 PHP では、cURL ライブラリを使用してネットワーク リクエストを行うことができます。
この記事では、cURL ライブラリを使用して PHP でネットワーク リクエストを行う方法を紹介します。
まず、サーバーに cURL 拡張機能をインストールする必要があります。 Ubuntu では、次のコマンドを使用してインストールできます。
sudo apt-get install php-curl
CentOS では、次のコマンドを使用してインストールできます。
sudo yum install php-curl
インストールが完了したら、次のコマンドを使用できます。
php -i | grep -i curl
cURL 拡張機能が正常にインストールされた場合、出力には次の情報が含まれるはずです:
curl cURL support => enabled cURL Information => 7.50.1
GET リクエストの送信が最も簡単です。リクエストメソッド。 PHP では、curl_init() 関数を使用して初期化し、curl_setopt() 関数を使用してリクエストのパラメータを設定し、最後にcurl_exec() 関数を使用してリクエストを送信します。以下は、GET リクエストを送信する簡単な例です。
$url = 'https://example.com/api/get_data'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); echo $response;
上記のコードでは、最初にリクエストされた URL を定義します。次に、curl_init() 関数を使用して cURL セッションを初期化し、リクエスト URL をパラメータとして渡します。次に、curl_setopt() 関数を使用して CURLOPT_RETURTRANSFER パラメータを true に設定し、リクエスト結果を返す必要があることを示します。最後に、curl_exec() 関数を使用してリクエストを送信し、結果を $response 変数に保存します。最後に、curl_close() 関数を使用してセッションを閉じます。
POST リクエストの送信は、GET リクエストの送信よりも少し複雑です。 curl_setopt() 関数を使用して CURLOPT_POST パラメータを true に設定し、要求されたデータを CURLOPT_POSTFIELDS パラメータとして送信する必要があります。以下は、POST リクエストの送信例です。
$url = 'https://example.com/api/post_data'; $data = array( 'name' => 'John', 'age' => 30, ); $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); $response = curl_exec($ch); curl_close($ch); echo $response;
上記のコードでは、最初にリクエストされた URL とリクエストされたデータを定義します。次に、curl_init() 関数を使用して cURL セッションを初期化し、リクエスト URL をパラメータとして渡します。次に、curl_setopt() 関数を使用して CURLOPT_RETURTRANSFER パラメータを true に設定し、リクエスト結果を返す必要があることを示します。次に、curl_setopt() 関数を使用して CURLOPT_POST パラメータを true に設定します。これは、POST リクエストを送信することを意味します。最後に、curl_setopt() 関数を使用して CURLOPT_POSTFIELDS パラメータを要求されたデータに設定し、http_build_query() 関数を使用してデータを URL エンコードされた文字列に変換します。最後に、curl_exec() 関数を使用してリクエストが送信され、結果が $response 変数に保存されます。
一部の API では、通常の対話のために特定のリクエスト ヘッダーを設定する必要があります。この場合、curl_setopt() 関数を使用して CURLOPT_HTTPHEADER パラメータを設定し、リクエスト ヘッダーを設定できます。以下はリクエスト ヘッダーの設定例です。
$url = 'https://example.com/api/get_data'; $headers = array( 'Authorization: Bearer xxxxxxx', 'Content-Type: application/json', ); $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $response = curl_exec($ch); curl_close($ch); echo $response;
上記のコードでは、まずリクエストされた URL とリクエスト ヘッダーを定義します。次に、curl_init() 関数を使用して cURL セッションを初期化し、リクエスト URL をパラメータとして渡します。次に、curl_setopt() 関数を使用して CURLOPT_RETURTRANSFER パラメータを true に設定し、リクエスト結果を返す必要があることを示します。次に、curl_setopt() 関数を使用して、CURLOPT_HTTPHEADER パラメーターを設定された要求ヘッダーに設定し、配列で渡します。最後に、curl_exec() 関数を使用してリクエストが送信され、結果が $response 変数に保存されます。
プロキシ サーバー経由でリクエストを送信する必要がある場合があります。この場合、curl_setopt() 関数を使用して CURLOPT_PROXY パラメータを設定し、プロキシ サーバーを設定できます。以下は、プロキシ サーバーの使用例です。
$url = 'https://example.com/api/get_data'; $proxy = 'http://proxy.example.com:8080'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_PROXY, $proxy); $response = curl_exec($ch); curl_close($ch); echo $response;
上記のコードでは、まず、要求された URL とプロキシ サーバーのアドレスを定義します。次に、curl_init() 関数を使用して cURL セッションを初期化し、リクエスト URL をパラメータとして渡します。次に、curl_setopt() 関数を使用して CURLOPT_RETURTRANSFER パラメータを true に設定し、リクエスト結果を返す必要があることを示します。次に、curl_setopt() 関数を使用して、CURLOPT_PROXY パラメータをプロキシ サーバーのアドレスに設定します。最後に、curl_exec() 関数を使用してリクエストが送信され、結果が $response 変数に保存されます。
要約すると、cURL ライブラリは、HTTP リクエストなどの操作を実行するために使用できる非常に強力なツールです。 PHP では、cURL ライブラリを使用してネットワーク リクエストを送信し、さまざまなニーズに合わせてリクエスト パラメータを設定できます。
以上がPHP で cURL ライブラリを使用してネットワークリクエストを行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。