curl_multi_init() - как пользоваться?

mfl
На сайте с 16.10.2006
Offline
134
mfl
5528

Из мануала:

curl_multi_init — Создает набор cURL дескрипторов

Описание
resource curl_multi_init ( void )

Warning
К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

В связи с чем вопрос, кто использовал данную функцию, можете доступно обьяснить как ей пользоваться?

Я так понимаю, данная функция позволяет подключаться одновлеменнок нескольким адресам параллельно.

К примеру, необходимо получить данные с двух адресов, используя curl_init:

$ch = curl_init("http://site1.com/");

curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$xml1 = curl_exec ($ch);
curl_close ($ch);

$ch = curl_init("http://site2.com/");
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$xml2 = curl_exec ($ch);
curl_close ($ch);

На выходе имеем 2 переменные ($xml1 и $xml2). Но тут как мы видим, получение данных происходит последовательно.

Каким образом можно реализовать тоже самое используя curl_multi_init, если это вообще возможно?

Будет ли в этом случае прирост скорости получения данных, действительно ли эта функция позволячет подключаться одновременно к нескольким адресам или эта функция использует механизм последовательного получения данных с каждого адреса?

В поиске только ссылки на копии мануала, ни одного ресурса со своим контентом.

Заранее спасибо.

[Удален]
#1

<?php

// create both cURL resources
$ch1 = curl_init();
$ch2 = curl_init();

// set URL and other appropriate options
curl_setopt($ch1, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);

//create the multiple cURL handle
$mh = curl_multi_init();

//add the two handles
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

$running=null;
//execute the handles
do {
curl_multi_exec($mh,$running);
} while ($running > 0);

//close the handles
curl_multi_remove_handle($ch1);
curl_multi_remove_handle($ch2);
curl_multi_close($mh);

?>

Отсюда

mfl
На сайте с 16.10.2006
Offline
134
mfl
#2

nikitian

Спасибо, не догадался посмотреть оригинал, все время пользовался русскоязычной версией на ru2.php.net

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий