PHPは、 Curlを介してHTTPリクエストを簡単に送信できるカールライブラリを提供します。 Curlは、HTTPリクエストで広く使用されている強力なツールであり、フォームデータの送信、クロールのWebページ、その他の操作です。これらの操作を簡素化するために、PHPはいくつかの機能を提供します。その中で最も重要なのはcurl_init()です。 Curlセッションの初期化に使用され、リクエストの送信を開始できます。
この記事では、 curl_init()を使用してcurlセッションを初期化し、 curl_setopt() 、 curl_exec() 、およびその他の機能を組み合わせてHTTPリクエストを送信する方法を示します。
Curlを使用してリクエストを送信する前に、まずCurlセッションを初期化する必要があります。 PHPは、 curl_init()関数を提供して、新しいCurlセッションを初期化します。これにより、リクエストオプションの構成と最終的にリクエストを実行できるCurlハンドルが返されます。
<?php
// 初期化a cURL セッション
$ch = curl_init();
?>
この時点で、 curl_init()によって返される$ ch変数は、現在のCurlセッションを表すCurlハンドルです。次に、このハンドルを介して要求されたオプションの一部を構成できます。
curl_setopt()関数を使用して、Curlセッションにさまざまなオプションを設定できます。最も一般的に使用されるオプションは、リクエストURL、リクエストメソッド、リクエストヘッダー情報などを設定することです。
要求されたターゲットURLを設定するには、 curlopt_urlオプションを使用できます。
// リクエストされたセット URL
curl_setopt($ch, CURLOPT_URL, "http://gitbox.net/example");
デフォルトでは、 curl_exec()関数は、要求された結果をブラウザに直接出力します。リクエスト結果を直接出力する代わりに結果を取得したい場合は、 Curlopt_returnTransferオプションを介して制御できます。
// 直接出力なしで返品コンテンツを設定します
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
Curlは、 get 、 post 、 putなどのさまざまなHTTPメソッドをサポートしています。postメソッドを使用する場合は、 curlopt_postを使用して設定できます。
// リクエストメソッドをに設定します POST
curl_setopt($ch, CURLOPT_POST, true);
// 設定 POST データ
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'username' => 'testuser',
'password' => 'testpassword'
]));
カスタムHTTPヘッダーを設定する必要がある場合は、 curlopt_httpheaderオプションを使用できます。
// 設定自定义的 HTTP 頭
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/x-www-form-urlencoded',
'Authorization: Bearer token_value'
]);
すべてのオプションが構成されたら、 curl_exec()関数を使用してリクエストを実行して応答を取得できます。この関数は、要求された結果を返します。エラーが発生しない場合、返された結果はターゲットURLの応答コンテンツです。
// リクエストを実行し、応答結果を取得します
$response = curl_exec($ch);
// リクエストが成功したかどうかを確認してください
if ($response === false) {
echo "cURL 間違い:" . curl_error($ch);
} else {
echo "リクエストが成功しました,応答コンテンツ:" . $response;
}
リクエストが完了した後、リソースを解放するためにCURLセッションを閉じている必要があります。クローズドカールセッションは、特に多数のリクエストを処理する場合には良い習慣です。これは、システムのパフォーマンスを改善するのに役立ちます。
// 閉鎖 cURL セッション
curl_close($ch);
以下は、PHPを介して初期化、オプションの設定、リクエストの送信、および応答結果を取得する方法の完全な例です。
<?php
// 初期化 cURL セッション
$ch = curl_init();
// リクエストされたセット URL
curl_setopt($ch, CURLOPT_URL, "http://gitbox.net/example");
// 直接出力なしで返品コンテンツを設定します
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// リクエストメソッドをに設定します POST
curl_setopt($ch, CURLOPT_POST, true);
// 設定 POST データ
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'username' => 'testuser',
'password' => 'testpassword'
]));
// 設定自定义的 HTTP 頭
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/x-www-form-urlencoded',
'Authorization: Bearer token_value'
]);
// リクエストを実行し、応答結果を取得します
$response = curl_exec($ch);
// リクエストが成功したかどうかを確認してください
if ($response === false) {
echo "cURL 間違い:" . curl_error($ch);
} else {
echo "リクエストが成功しました,応答コンテンツ:" . $response;
}
// 閉鎖 cURL セッション
curl_close($ch);
?>