curl_mutli_* 是個很好用的玩意,
這系列的函式可以讓你在同一支程式中同時發出多個對外的連線.
如果有需要同一支程式同時去拉多個資料回來, 用這系列的函式會比依序一個一個建立連線/抓取資料快很多.

基本用法如下:

foreach($urls as $url)
{
$conns[$i] = curl_init ();
curl_setopt ($conns[$i], CURLOPT_URL, $url);
curl_setopt ($conns[$i], CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($conns[$i], CURLOPT_TIMEOUT, 10); // timeout = 10sec
curl_multi_add_handle ($mh, $conns[$i]);
}

$active=1;
do
{
$mrc = curl_multi_exec($mh, $active);
} while ( $active>0 );

if ($mrc != CURLM_OK)
die ("Error to execute curl_multi_exec()!!!");


搞定收工, 之後就跟一般的curl用法差不多.


會利用這系列的函式, 主要是要拿來同時對一堆server做healthcheck :Q

and,
這系列的函式是PHP5限定.
所以...趕快升級到PHP5吧 XD

Izero 發表在 痞客邦 PIXNET 留言(0) 人氣()