一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP curl批處理及多請求并發(fā)實現(xiàn)方法分析

PHP curl批處理及多請求并發(fā)實現(xiàn)方法分析

2019-09-12 11:58benben0729 PHP教程

這篇文章主要介紹了PHP curl批處理及多請求并發(fā)實現(xiàn)方法,結合實例形式分析了php curl并發(fā)請求處理相關操作技巧與注意事項,需要的朋友可以參考下

本文實例講述了PHP curl批處理及多請求并發(fā)實現(xiàn)方法。分享給大家供大家參考,具體如下:

在面試過程中遇到一個問題,加入一個一個網(wǎng)站訪問一次需要兩秒,我們如何實現(xiàn)在2秒左右請求三次?

面試官想問的就是如何使用curl并發(fā)處理請求

關于curl_multi_init()

一般來說,想到要用curl_multi_init()時,目的是要同時請求多個url,而不是一個一個依次請求,否則就要curl_init()了。

不過,在使用curl_multi的時候,你可能遇到cpu消耗過高、網(wǎng)頁假死等現(xiàn)象,可以看看《PHP使用curl_multi_select解決curl_multi網(wǎng)頁假死問題

使用curl_multi的步驟總結如下:

  • 第一步:調用curl_multi_init
  • 第二步:循環(huán)調用curl_multi_add_handle

    這一步需要注意的是,curl_multi_add_handle的第二個參數(shù)是由curl_init而來的子handle。

  • 第三步:持續(xù)調用curl_multi_exec
  • 第四步:根據(jù)需要循環(huán)調用curl_multi_getcontent獲取結果
  • 第五步:調用curl_multi_remove_handle,并為每個字handle調用curl_close
  • 第六步:調用curl_multi_close

各函數(shù)作用解釋:

curl_multi_init()
初始化一個curl批處理句柄資源。

curl_multi_add_handle()
向curl批處理會話中添加單獨的curl句柄資源。curl_multi_add_handle()函數(shù)有兩個參數(shù),第一個參數(shù)表示一個curl批處理句柄資源,第二個參數(shù)表示一個單獨的curl句柄資源。

curl_multi_exec()
解析一個curl批處理句柄,curl_multi_exec()函數(shù)有兩個參數(shù),第一個參數(shù)表示一個批處理句柄資源,第二個參數(shù)是一個引用值的參數(shù),表示剩余需要處理的單個的curl句柄資源數(shù)量。

curl_multi_remove_handle()
移除curl批處理句柄資源中的某個句柄資源,curl_multi_remove_handle()函數(shù)有兩個參數(shù),第一個參數(shù)表示一個curl批處理句柄資源,第二個參數(shù)表示一個單獨的curl句柄資源。

curl_multi_close()
關閉一個批處理句柄資源。

curl_multi_getcontent()
在設置了CURLOPT_RETURNTRANSFER的情況下,返回獲取的輸出的文本流。

curl_multi_info_read()
獲取當前解析的curl的相關傳輸信息。

示例代碼:

<?php
// 創(chuàng)建一對cURL資源
$ch1 = curl_init();
$ch2 = curl_init();
// 設置URL和相應的選項
curl_setopt($ch1, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);
// 創(chuàng)建批處理cURL句柄
$mh = curl_multi_init();
// 增加2個句柄
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);
$running=null;
// 執(zhí)行批處理句柄
do {
  usleep(10000);
  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 curl批處理及多請求并發(fā)實現(xiàn)方法分析

string curl_multi_getcontent ( resource $ch )

ch是由 curl_init() 返回的 cURL 句柄。

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产高清在线播放免费观看 | 99九九成人免费视频精品 | 亚洲精品青青草原avav久久qv | 欧美男人天堂 | 羞羞漫画免费漫画页面在线看漫画秋蝉 | 日本一区二区免费在线 | 国产一区二区三区毛片 | 女同全黄h全肉动漫 | 91国内在线国内在线播放 | 国产精品视频播放 | 日本人作爰啪啪全过程 | 美女尿口羞羞视频 | 午夜国产在线观看 | 99亚洲 | 亚洲国产第一区二区三区 | 日本韩国推理片免费观看网站 | 99性视频| 日韩高清在线高清免费 | 国内精品久久久久影院网站 | 美女脱得一二净无内裤全身的照片 | 亚洲四虎永久在线播放 | 3d蒂法精品啪啪一区二区免费 | 精品久久免费视频 | 黄蓉h系列 | 暖暖在线精品日本中文 | 四虎国产精品免费久久麻豆 | 很黄的网站在线观看 | 99久久国产综合精品1尤物 | 成人操 | 99年水嫩漂亮粉嫩在线播放 | 99热在线只有精品 | 亚洲精品国产成人 | 成人国产精品一级毛片视频 | 日韩一区二区中文字幕 | 日本久久免费大片 | 三级无删减高清在线影院 | 男女一级簧色带 | 动漫美女隐私尿口图片 | 亚洲视频中文字幕 | 国产精品日韩欧美一区二区 | 精品视频一区二区三区 |