いくつかのオプションを変更して他のリソースを削除すると、同じマルチハンドルを使用できません。
$ 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が同じ接続を再利用できるようになります。
私を助けることができますか?
ありがとう