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
這系列的函式可以讓你在同一支程式中同時發出多個對外的連線.
如果有需要同一支程式同時去拉多個資料回來, 用這系列的函式會比依序一個一個建立連線/抓取資料快很多.
基本用法如下:
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
全站熱搜
留言列表