ホームページ  >  記事  >  バックエンド開発  >  PHP 関数の紹介—curl_multi_getcontent(): cURL セッションのコンテンツを取得する

PHP 関数の紹介—curl_multi_getcontent(): cURL セッションのコンテンツを取得する

王林
王林オリジナル
2023-07-26 15:01:171469ブラウズ

PHP 関数の紹介—curl_multi_getcontent(): cURL セッションのコンテンツを取得する

PHP 開発では、ネットワーク経由で他のサーバーにデータをリクエストする必要がよくあります。 cURL (Client URL) は、PHP でのネットワーク通信に使用される強力な PHP 拡張ライブラリです。 cURL は一連の関数を提供します。そのうちの 1 つは、cURL セッションのコンテンツを取得するために使用されるcurl_multi_getcontent()です。

curl_multi_getcontent() 関数は、curl_multi_init() 関数を使用して作成された複数の cURL セッションのコンテンツを取得するために使用されます。 curl_multi_exec() 関数を使用して複数の cURL セッションを実行する場合、curl_multi_getcontent() 関数を使用して各セッションの戻り結果を取得できます。この関数の呼び出しは非常に簡単で、cURL リソース ハンドルをパラメータとして渡すだけです。

以下は、curl_multi_getcontent() 関数を使用したサンプル コードです。

// 初始化cURL会话
$ch1 = curl_init('http://www.example.com/api1');
$ch2 = curl_init('http://www.example.com/api2');

// 创建一个新的cURL多个句柄
$mh = curl_multi_init();

// 将两个会话添加到多个句柄中
curl_multi_add_handle($mh, $ch1);
curl_multi_add_handle($mh, $ch2);

// 执行多个句柄的cURL会话
do {
    $status = curl_multi_exec($mh, $active);
} while ($status === CURLM_CALL_MULTI_PERFORM || $active);

// 循环获取每个会话的内容
$contents = array();
foreach([$ch1, $ch2] as $ch) {
    $content = curl_multi_getcontent($ch);
    $contents[] = $content;
}

// 关闭多个句柄的cURL会话
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);

// 输出获取到的内容
var_dump($contents);

上記のコードでは、まず、curl_init() 関数を使用して 2 つの cURL セッションを初期化し、それらを cURL 内に追加します。複数のハンドルを持つセッション。これらのセッションは、curl_multi_exec() 関数を使用して実行されました。実行中に、curl_multi_getcontent() 関数を使用して各セッションのコンテンツを取得し、そのコンテンツを配列に保存します。最後に、curl_multi_remove_handle() 関数とcurl_multi_close() 関数を使用して、複数のセッションを閉じます。

curl_multi_getcontent() 関数を使用する前に、まずセッションが実行されていることを確認する必要があります。そうしないと、コンテンツが正しく取得されない可能性があります。

要約すると、curl_multi_getcontent() 関数は、複数の cURL セッションのコンテンツを取得するために使用できる非常に便利な関数です。複数の API を同時にリクエストする場合、これを使用して各セッションの戻り結果を取得し、後続の処理を容易にすることができます。

以上がPHP 関数の紹介—curl_multi_getcontent(): cURL セッションのコンテンツを取得するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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