激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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

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

PHP curl批處理及多請求并發實現方法分析

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

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

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

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

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

關于curl_multi_init()

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

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

使用curl_multi的步驟總結如下:

  • 第一步:調用curl_multi_init
  • 第二步:循環調用curl_multi_add_handle

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

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

各函數作用解釋:

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

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

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

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

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

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

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

示例代碼:

<?php
// 創建一對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);
// 創建批處理cURL句柄
$mh = curl_multi_init();
// 增加2個句柄
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);
$running=null;
// 執行批處理句柄
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批處理及多請求并發實現方法分析

string curl_multi_getcontent ( resource $ch )

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久看免费视频 | 国产电影精品久久 | 亚洲精品久久久久久下一站 | 曰韩精品| hd极品free性xxx一护士 | 一级一级一级一级毛片 | 久久精品欧美一区 | www亚洲成人 | 国产精品免费一区二区三区四区 | 国产精品久久久久久久久粉嫩 | 久久噜噜噜精品国产亚洲综合 | 92看片淫黄大片欧美看国产片 | 久久精品免费国产 | 99久在线视频 | 日日摸夜夜骑 | 日本成人一区二区 | 亚洲第一激情 | 精品一区二区电影 | 亚洲成人国产综合 | www.99热精品 | 性欧美视频在线观看 | 在线观看免费av网 | 91成人久久 | 成人免费毛片在线观看 | 综合国产一区 | 草草免费视频 | 伊人亚洲精品 | 日本a∨精品中文字幕在线 狠狠干精品视频 | 永久免费不卡在线观看黄网站 | 黄色网电影 | 久久艹逼 | 操碰网 | 黄视频免费在线 | 久久免费看毛片 | 亚洲综合一区在线观看 | 一区二区久久久久草草 | 欧美一级全黄 | 视频一区二区三区在线播放 | 欧美日韩在线视频一区二区 | 狠狠干91 | 亚洲九九色 |