изменив несколько параметров и удалив другие ресурсы, я не могу использовать тот же мульти дескриптор:
$ch1 = curl_init();
$ch2 = curl_init();
$ch3 = curl_init();
curl_setopt($ch1, CURLOPT_URL, "http://mytestsite.com/test.curl.php?test=a");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch2, CURLOPT_URL, "http://mytestsite.com/test.curl.php?test=b");
curl_setopt($ch2, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch3, CURLOPT_URL, "http://mytestsite.com/test.curl.php?test=b");
curl_setopt($ch3, CURLOPT_HEADER, 0);
curl_setopt($ch3, CURLOPT_RETURNTRANSFER, TRUE);
$mh = curl_multi_init();
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);
curl_multi_add_handle($mh,$ch3);
$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);
}
while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
$test1 = curl_multi_getcontent( $ch1 );
$test2 = curl_multi_getcontent( $ch2 );
$test3 = curl_multi_getcontent( $ch3 );
error_log($test1); // a
error_log($test2); // b
error_log($test3); // b
curl_multi_remove_handle($mh, $ch1);
// curl_multi_remove_handle($mh, $ch2);
// curl_multi_remove_handle($mh, $ch3);
curl_setopt($ch2, CURLOPT_URL, "http://mytestsite.com/test.curl.php?test=c");
curl_setopt($ch3, CURLOPT_URL, "http://mytestsite.com/test.curl.php?test=c");
$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);
}
while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
$test1 = curl_multi_getcontent( $ch1 );
$test2 = curl_multi_getcontent( $ch2 );
$test3 = curl_multi_getcontent( $ch3 );
error_log($test1); // a
error_log($test2); // b
error_log($test3); // b
curl_multi_close($mh);
я вижу:
a
b
b
a
b
b
я хочу увидеть:
a
b
b
a
c
c
в соответствии с этой формой.
После передачи вы просто устанавливаете новые параметры в дескрипторе и делаете еще один перевод. Это заставит libcurl повторно использовать то же соединение, если это возможно.
может мне помочь?
спасибо