いくつかのオプションを変更して他のリソースを削除すると、同じマルチハンドルを使用できません。
$ 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;
行う
{{
$ mrc = curl_multi_exec($ mh、$ active);
}
while($ mrc == CURLM_CALL_MULTI_PERFORM);
while($ active && $ mrc == CURLM_OK)
{{
if(curl_multi_select($ mh)!= -1)
{{
行う
{{
$ 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); //
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;
行う
{{
$ mrc = curl_multi_exec($ mh、$ active);
}
while($ mrc == CURLM_CALL_MULTI_PERFORM);
while($ active && $ mrc == CURLM_OK)
{{
if(curl_multi_select($ mh)!= -1)
{{
行う
{{
$ 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); //
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が同じ接続を再利用できるようになります。
私を助けることができますか?
ありがとう