(PHP5)
curl_multi_exec — 現在の cURL ハンドルのサブ接続を実行します
intcurl_multi_exec (リソース $mh , int &$still_running )
スタック上の各ハンドルを処理します。このメソッドは、ハンドルがデータの読み取りまたは書き込みを必要とするかどうかに関係なく呼び出すことができます。
うーん
cURL の複数のハンドルは、curl_multi_init() によって返されます。
まだ実行中
操作がまだ実行されているかどうかを判断するために使用される識別子への参照。
cURL 事前定義定数で定義された cURL コード。
注:この関数は、バッチ スタック全体に関連するエラーのみを返します。 CURLM_OK が返された場合でも、個々の転送で問題が発生する可能性があります。
この例では、2 つの cURL ハンドルを作成し、バッチ ハンドラーに追加して、並列実行します。
<?php// cURL リソースのペアを作成します $ch1 =curl_init();$ch2 =curl_init();// URL と対応するオプションを設定しますcurl_setopt($ch1, CURLOPT_URL, "http://lxr.php.net / ");curl_setopt($ch1, CURLOPT_HEADER, 0);curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");curl_setopt($ch2, CURLOPT_HEADER, 0);//バッチ cURL ハンドルを作成 $mh =curl_multi_init();// ハンドルを 2 つ追加しますcurl_multi_add_handle($mh ,$ ch1);curl_multi_add_handle($mh,$ch2);$active = null;// バッチハンドルを実行 do { $mrc =curl_multi_exec($mh, $active);} while ($mrc == CURLM_CALL_MULTI_PERFORM) while ($active && $mrc == CURLM_OK) { if (curl_multi_select) ($mh ) != -1) { do { $mrc =curl_multi_exec($mh, $active) }; ($mrc == CURLM_CALL_MULTI_PERFORM); }}//すべてのハンドルを閉じるcurl_multi_remove_handle($mh, $ch1);curl_multi_remove_handle($mh, $ch2);curl_multi_close($mh);?>