濮阳杆衣贸易有限公司

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

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

熱門標簽:萍鄉(xiāng)商鋪地圖標注 宿州正規(guī)外呼系統(tǒng)軟件 合肥企業(yè)外呼系統(tǒng)線路 企業(yè)400電話辦理多少費用 代理打電話機器人 神龍斗士電話機器人 電信外呼系統(tǒng)多少錢一個月 桂陽公司如何做地圖標注 太原400電話申請流程

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

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

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

關于curl_multi_init()

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

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

使用curl_multi的步驟總結如下:

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

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

  • 第三步:持續(xù)調用curl_multi_exec
  • 第四步:根據需要循環(huán)調用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
// 創(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);
?>

獲取批處理后的結果:

string curl_multi_getcontent ( resource $ch )

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

參考:

http://www.php.net/manual/zh/function.curl-multi-init.php

https://www.jb51.net/article/145660.htm

更多關于PHP相關內容感興趣的讀者可查看本站專題:《php curl用法總結》、《PHP網絡編程技巧總結》、《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》、《PHP數據結構與算法教程》及《PHP中json格式數據操作技巧匯總》

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

您可能感興趣的文章:
  • php多進程并發(fā)編程防止出現(xiàn)僵尸進程的方法分析
  • PHP高并發(fā)和大流量解決方案整理
  • PHP 并發(fā)場景的幾種解決方案
  • PHP下用Swoole實現(xiàn)Actor并發(fā)模型的方法
  • php多進程模擬并發(fā)事務產生的問題小結
  • PHP利用Mysql鎖解決高并發(fā)的方法
  • php curl批處理實現(xiàn)可控并發(fā)異步操作示例
  • PHP使用curl_multi實現(xiàn)并發(fā)請求的方法示例
  • 詳解PHP服務器如何在有限的資源里最大提升并發(fā)能力

標簽:鄂州 廊坊 崇左 太原 衡陽 白銀 辛集 綏化

巨人網絡通訊聲明:本文標題《PHP curl批處理及多請求并發(fā)實現(xiàn)方法分析》,本文關鍵詞  PHP,curl,批處理,及,多,請求,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP curl批處理及多請求并發(fā)實現(xiàn)方法分析》相關的同類信息!
  • 本頁收集關于PHP curl批處理及多請求并發(fā)實現(xiàn)方法分析的相關信息資訊供網民參考!
  • 推薦文章
    南澳县| 五原县| 介休市| 崇明县| 伊春市| 迁西县| 深水埗区| 霍城县| 余庆县| 莱州市| 玛纳斯县| 区。| 垦利县| 峨眉山市| 罗定市| 静宁县| 陵水| 平顺县| 胶南市| 遂宁市| 元江| 石柱| 保亭| 和田市| 拜城县| 安顺市| 丁青县| 遂平县| 拜泉县| 延边| 阳西县| 平顶山市| 开化县| 昂仁县| 高密市| 宜兰市| 南康市| 汕尾市| 旬邑县| 西乡县| 德昌县|