首頁 > 後端開發 > php教程 > php 中curl 循环往请求多个URL和多线程去请求多个URL的方法

php 中curl 循环往请求多个URL和多线程去请求多个URL的方法

ringa_lee
發布: 2023-02-28 13:22:02
原創
3964 人瀏覽過

  php 中curl 循环去请求多个URL和多线程去请求多个URL的方法

第一种:循环请求
登入後複製
$sr=array(url_1,url_2,url_3);
foreach ($sr as $k=>$v) {	
$curlPost=$v.'?f=传入参数';	
$ch = curl_init($curlPost) ; 	
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; // 获取数据返回   	
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true) ; // 在启用 CURLOPT_RETURNTRANSFER 时候将获取数据返回   	
$data = curl_exec($ch) ;	
echo $k.'##:'.$data.'
';}
curl_close($ch);
登入後複製

第二种 多线程请求

$sr=array(url_1,url_2,url_3);
$mh = curl_multi_init();     
foreach ($sr as $i => $url) {      
$curlPost=$url.'?f=%2Fpipefile%2Fskincss%2Fskincss_1356490012_1.zip%40%2Fskincss%2Fimages%2Fskincss_1356490012_1.jpg';      
$conn[$i]=curl_init($curlPost);      
curl_setopt($conn[$i],CURLOPT_RETURNTRANSFER,1);      
curl_multi_add_handle ($mh,$conn[$i]);     
}      
do {      
$mrc = curl_multi_exec($mh,$active);     
} 
while ($mrc == CURLM_CALL_MULTI_PERFORM);     
while ($active and $mrc == CURLM_OK) 
{      
if (curl_multi_select($mh) != -1) 
{       
do {        
$mrc = curl_multi_exec($mh, $active);      
 } 
while ($mrc == CURLM_CALL_MULTI_PERFORM);      
}     
}      
foreach ($sr as $i => $url) {      
$res[$i]=curl_multi_getcontent($conn[$i]);      
curl_close($conn[$i]);     
}  
var_dump($res);
登入後複製

简单测试 后 发现,同时请求4个不同的URl,循环的处理速度 好像比多线程的快,这个问题有待验证


 


相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
curl 模擬登陸
來自於 1970-01-01 08:00:00
0
0
0
將cURL命令列轉換為PHP cURL程式碼
來自於 1970-01-01 08:00:00
0
0
0
將命令列 cURL 轉換為 PHP cURL
來自於 1970-01-01 08:00:00
0
0
0
php5.3與php5.5的curl的差別
來自於 1970-01-01 08:00:00
0
0
0
ubuntu下curl-loader 編譯make失敗
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板