亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP使用curl_multi_select解決curl_multi網頁假死問題的方法

2024-05-05 00:05:00
字體:
來源:轉載
供稿:網友

本文實例講述了PHP使用curl_multi_select解決curl_multi網頁假死問題的方法。分享給大家供大家參考,具體如下:

curl_multi可以批處理事務,給網頁編程帶來很大的方便。不過在使用curl_multi的過程中,我們會遇到一個比較頭疼的問題,那就是當并發處理的事務數量過多的時候,就會出現CPU過高,網頁假死的現象,這是不可以忽視的。

今天,通過查詢相關資料和測試,終于找到了一個解決問題的方法。

正常情況下,我們是這樣使用curl_multi的。

實例代碼:

$connomains = array("//www.49028c.com/","http://www.163.com/","http://www.sina.com.cn/");$mh = curl_multi_init();foreach ($connomains as $i => $url) {   $conn[$i]=curl_init($url);   curl_setopt($conn[$i],CURLOPT_RETURNTRANSFER,1);   curl_multi_add_handle ($mh,$conn[$i]);}do { $n=curl_multi_exec($mh,$active); } while ($active);foreach ($connomains as $i => $url) {   $res[$i]=curl_multi_getcontent($conn[$i]);   curl_close($conn[$i]);}print_r($res);

這個實例代碼有個致命弱點,就是在do循環的那段,在整個url請求期間是個死循環,它會輕易導致CPU占用很高,網頁出現假死狀態。

經過測試發現,我們可以巧妙使用curl_multi_select()函數來解決這個問題。

方法如下:

do { $n=curl_multi_exec($mh,$active); } while ($active);

改為

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);    }}

因為$active要等全部url數據接受完畢才變成false,所以這里用到了curl_multi_exec的返回值判斷是否還有數據,當有數據的時候就不停調用curl_multi_exec,暫時沒有數據就進入select階段,新數據一來就可以被喚醒繼續執行。這里的好處就是CPU的無謂消耗沒有了。

另外可能遇到的問題:

控制每一個請求的超時時間,在curl_multi_add_handle之前通過curl_setopt去做:

curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);

判斷是否超時了或者其他錯誤,在curl_multi_getcontent之前用:

curl_error($conn[$i]);

了解multi接口

當程序需要進行多次curl并發請求的時候,curl提供的multi接口就派上用場了。流暢大致是這樣的:

1)、curl_multi _init初始化一個multi curl對象,為了同時進行多個curl的并發訪問,我們需要初始化多個easy curl對象,使用curl_easy_setopt進行相關設置。

2)、調用curl_multi _add_handle把easy curl對象添加到multi curl對象中。

3)、添加完畢后執行curl_multi_perform方法進行并發的訪問。

4)、訪問結束后curl_multi_remove_handle移除相關easy curl對象,curl_easy_cleanup清除easy curl對象。

5)、最后curl_multi_cleanup清除multi curl對象。

一個簡單明了的PHP使用curl_multi_add_handle并行處理實例

<?php// 創建一對cURL資源$ch1 = curl_init();$ch2 = curl_init();// 設置URL和相應的選項curl_setopt($ch1, CURLOPT_URL, "//www.49028c.com/");curl_setopt($ch1, CURLOPT_HEADER, 0);curl_setopt($ch2, CURLOPT_URL, "http://www.baidu.com/");curl_setopt($ch2, CURLOPT_HEADER, 0);// 創建批處理cURL句柄$mh = curl_multi_init();// 增加2個句柄curl_multi_add_handle($mh,$ch1);curl_multi_add_handle($mh,$ch2);$running=null;// 執行批處理句柄do {  curl_multi_exec($mh,$running);} while($running > 0);// 關閉全部句柄curl_multi_remove_handle($mh, $ch1);curl_multi_remove_handle($mh, $ch2);curl_multi_close($mh);?>

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91理论片午午论夜理片久久| 91精品国产成人| 国产91露脸中文字幕在线| 97超级碰碰人国产在线观看| 萌白酱国产一区二区| 久久久久国色av免费观看性色| 日韩一区二区欧美| 97福利一区二区| 中文字幕精品久久| 少妇高潮久久久久久潘金莲| 色综合伊人色综合网站| 欧美精品一二区| 亚洲大胆人体在线| 日本一区二区三区在线播放| 国模精品系列视频| 欧美电影免费观看高清| 欧美激情视频在线免费观看 欧美视频免费一| 在线成人激情视频| 亚洲精品欧美一区二区三区| 精品久久久久人成| 国产精品成人va在线观看| 91性高湖久久久久久久久_久久99| 亚州精品天堂中文字幕| 国产日韩欧美影视| 亚洲欧美日韩直播| 欧美麻豆久久久久久中文| 日韩免费在线看| 在线观看国产成人av片| 国产不卡一区二区在线播放| 欧美激情精品久久久久久黑人| 色午夜这里只有精品| 欧美成人一区二区三区电影| 91精品国产91| 亚洲国产成人av在线| 欧美性资源免费| 国产99视频在线观看| 中文字幕av一区二区三区谷原希美| 亚洲a∨日韩av高清在线观看| 久久婷婷国产麻豆91天堂| 亚洲欧美www| 久久综合五月天| 亚洲色图25p| 欧美在线激情视频| 国产成人精品免高潮费视频| 精品无码久久久久久国产| 日本欧美一二三区| 亚洲美女视频网| 91中文在线观看| 成人有码在线视频| 韩国精品久久久999| 国产精品久久综合av爱欲tv| 在线观看精品自拍私拍| 国产亚洲精品成人av久久ww| 精品中文字幕乱| 欧美一区二区视频97| www.久久久久久.com| 欧美精品福利在线| 亚洲精品视频久久| 亚洲老板91色精品久久| 精品人伦一区二区三区蜜桃网站| 人人澡人人澡人人看欧美| 精品中文字幕在线观看| 欧美日韩一区二区三区| 91精品国产综合久久香蕉| 麻豆精品精华液| 欧美激情视频免费观看| 国产成人精品一区二区三区| 狠狠躁天天躁日日躁欧美| 精品免费在线观看| 九九热99久久久国产盗摄| 欧美一级淫片aaaaaaa视频| 亚洲va电影大全| 亚洲国产精品一区二区三区| 一区二区三区回区在观看免费视频| 黄网站色欧美视频| 欧美另类极品videosbest最新版本| 欧美日韩亚洲一区二区| 国产精品久久久久久久久借妻| 精品一区二区三区四区在线| 亚洲成人1234| 中文字幕欧美专区| 日韩在线视频网| 国产精品美女免费视频| 日日摸夜夜添一区| 国产精品久久久久久久av大片| 欧美性感美女h网站在线观看免费| 亚洲色图第三页| 日韩精品免费看| 国模精品系列视频| 精品国产福利在线| 欧美成人免费在线视频| 欧美激情中文字幕乱码免费| 18一19gay欧美视频网站| 69视频在线免费观看| 精品国产鲁一鲁一区二区张丽| 亚洲国产欧美日韩精品| 美女撒尿一区二区三区| 97在线观看视频| 国产精品第1页| 青青a在线精品免费观看| 日韩免费看的电影电视剧大全| 超碰日本道色综合久久综合| 日韩视频在线免费| 人人爽久久涩噜噜噜网站| 欧美有码在线观看视频| 日韩一区视频在线| 久久青草福利网站| 7777精品久久久久久| 中文字幕日韩在线播放| 一区二区成人精品| 亚洲男人的天堂在线| 亚洲人成电影网站| 亚洲欧美综合图区| 亚洲男人av电影| 亚洲最大成人免费视频| 欧美孕妇性xx| 国产精品揄拍一区二区| 国产日韩欧美日韩| 精品香蕉一区二区三区| 亚洲视频第一页| 欧美日韩视频免费播放| 国产91色在线|免| 国产91露脸中文字幕在线| 亚洲成人1234| 日韩在线免费高清视频| 亚洲 日韩 国产第一| 亚洲大胆人体av| 91超碰caoporn97人人| 成人激情视频在线播放| 久久久国产视频| 久久av.com| 欧美日本中文字幕| 国产欧美最新羞羞视频在线观看| 久久视频在线免费观看| 久久久中精品2020中文| 欧美日韩亚洲一区二区| 亚洲欧美中文日韩v在线观看| 91香蕉嫩草影院入口| 亚洲跨种族黑人xxx| 亚洲成人黄色网| 久久av资源网站| 成人在线播放av| 中文字幕免费精品一区高清| 欧美性生交大片免网| 亚洲欧美另类国产| 97免费在线视频| 欧美日韩国产成人高清视频| 精品国产拍在线观看| 国产精品视频大全| 精品成人国产在线观看男人呻吟| 亚洲国产成人av在线| 亚洲国产天堂久久国产91| 久久伊人精品视频| 久久99视频精品| 欧美视频在线观看 亚洲欧| 亚洲最新视频在线| 欧美激情精品久久久久久| 国精产品一区一区三区有限在线| 九九精品在线播放| 日韩高清电影好看的电视剧电影| 亚洲成人av片| 国产精品视频xxx| 亚洲精品美女免费| 国内精品久久久久伊人av|