我对curl的init()和close()函数感到困惑.我想知道在以下每种情况下我应该何时关闭卷曲手柄:
1.使用单个句柄获取具有不同选项的“单个”URL.例如:
1.使用单个句柄获取具有不同选项的“单个”URL.例如:
$curl=curl_init('google.com'); curl_setopt($curl,CURLOPT_FOLLOWLOCATION,true); curl_exec($curl);
现在我想将FOLLOWLOCATION设置为false.我应该做curl_close($curl),并从头开始做所有事情,或者只是设置选项并再次执行它,如下所示:
curl_setopt($curl,false); curl_exec($curl);
2.使用单个句柄获取“多个”URL.例如:
$curl = curl_init('google.com'); curl_exec($curl);
现在我想得到stackoverflow.com.我应该关闭句柄并从头开始,或者我可以设置另一个URL而不关闭句柄.像这样:
$curl = curl_init('stackoverflow.com'); curl_exec($curl);
$CONNECTIONS=10; $urls=fopen('urls.txt','r'); while(!feof($urls)) { $curl_array=array(); $curl=curl_multi_init(); for($i=0;$i<$CONNECTIONS&&!feof($urls);$i++) //create 10 connections unless we have reached end of file { $url=fgets($urls); //get next url from file $curl_array[$i]=curl_init($url); curl_multi_add_handle($curl,$curl_array[$i]); } $running=NULL; do { curl_multi_exec($curl,$running); }while($running>0); for($i=0;$i<$CONNECTIONS;$i++) { $response=curl_multi_getcontent($curl_array[$i]); curl_multi_remove_handle($curl,$curl_array[$i]); curl_close(($curl_array[$i])); } curl_multi_close($curl); }
正如您所看到的:在获取每个单个句柄的内容后,我将从多个句柄中移除句柄,关闭单个句柄,然后在for循环后关闭多个句柄.这种做法是正确的还是我覆盖了句柄?
谢谢
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。