PHP 関数の概要—curl_multi_init(): 複数の cURL でセッションを初期化する
はじめに:
PHP では、curl_multi_init() 関数を使用して、複数の cURL でセッションを初期化します。同時に複数の URL リクエスト。この関数は、新しいcurl_multiハンドルを作成し、リソースハンドルを返します。このセッションでは、複数の cURL ハンドルを追加して実行し、複数の URL を同時に処理するという目的を達成できます。
構文:
resourcecurl_multi_init(void)
戻り値:
成功した場合はセッション ハンドルを返し、失敗した場合は FALSE を返します。
コード例:
次は、curl_multi_init() 関数を使用して複数の cURL セッションを初期化し、2 つの URL リクエストを同時に処理する方法を示す簡単なコード例です。
<?php // 初始化会话 $mh = curl_multi_init(); // 创建URL列表 $urls = array( 'http://www.example.com/url1', 'http://www.example.com/url2' ); // 创建cURL句柄并添加到会话 $handles = array(); foreach ($urls as $url) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_multi_add_handle($mh, $ch); $handles[] = $ch; } // 执行会话中的cURL句柄 $active = null; do { $result = curl_multi_exec($mh, $active); } while ($result == CURLM_CALL_MULTI_PERFORM || $active); // 处理结果 foreach ($handles as $handle) { $response = curl_multi_getcontent($handle); // 处理响应数据 echo $response; // 移除句柄和关闭cURL curl_multi_remove_handle($mh, $handle); curl_close($handle); } // 关闭会话 curl_multi_close($mh); ?>
分析:
上記のコード例では、最初にcurl_multi_init()関数を使用してセッションが初期化され、次にURLリストが作成されます。次に、foreach ループを使用して URL リストを走査し、curl_init() 関数を使用して複数の cURL ハンドルを作成します。 CURLOPT_RETURTRANSFER オプションは、応答データが返されるように設定されています。次に、curl_multi_add_handle() 関数を使用して各ハンドルをセッションに追加し、ハンドルを $handles 配列に保存します。
その後、curl_multi_exec() 関数を使用して、セッション内のすべてのハンドルを同時に実行します。戻り値 $result とアクティブ ハンドルの数 $active を取得し、do-while ループで実行を続行する必要があるかどうかを判断します。
ループ終了後、curl_multi_getcontent() 関数を使用して各ハンドルの応答データを取得し、処理します。次に、curl_multi_remove_handle() 関数を使用してセッションからハンドルを削除し、curl_close() 関数を使用して各 cURL ハンドルを閉じます。
最後に、curl_multi_close() 関数を使用してセッションを閉じます。
概要:
curl_multi_init() 関数を使用すると、複数の cURL セッションを簡単に初期化し、複数の URL リクエストを同時に処理する機能を実装できます。これは、複数の API をリクエストしたり、複数のファイルを同時にダウンロードする必要がある場合に便利です。 curl_multi_init() 関数を使用すると、プログラムの効率と応答速度が向上します。
したがって、curl_multi_init() 関数とその他の関連する cURL 関数を学習して習得すると、PHP のネットワーク リクエスト関数をより深く理解し、応用できるようになります。
以上がPHP 関数の紹介—curl_multi_init(): 複数の cURL セッションを初期化するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。