婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PHP curl批處理及多請求并發實現方法分析

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

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

本文實例講述了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);
?>

獲取批處理后的結果:

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多進程并發編程防止出現僵尸進程的方法分析
  • PHP高并發和大流量解決方案整理
  • PHP 并發場景的幾種解決方案
  • PHP下用Swoole實現Actor并發模型的方法
  • php多進程模擬并發事務產生的問題小結
  • PHP利用Mysql鎖解決高并發的方法
  • php curl批處理實現可控并發異步操作示例
  • PHP使用curl_multi實現并發請求的方法示例
  • 詳解PHP服務器如何在有限的資源里最大提升并發能力

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

巨人網絡通訊聲明:本文標題《PHP curl批處理及多請求并發實現方法分析》,本文關鍵詞  PHP,curl,批處理,及,多,請求,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP curl批處理及多請求并發實現方法分析》相關的同類信息!
  • 本頁收集關于PHP curl批處理及多請求并發實現方法分析的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 夏津县| 丰顺县| 陇西县| 收藏| 饶平县| 龙井市| 台中市| 广南县| 襄城县| 吉木萨尔县| 郎溪县| 普宁市| 沾益县| 临安市| 昔阳县| 山阳县| 房山区| 泰兴市| 微山县| 济南市| 丘北县| 甘孜| 德州市| 托克托县| 连山| 溆浦县| 郧西县| 通道| 贵州省| 盐边县| 华宁县| 大悟县| 章丘市| 曲阳县| 柯坪县| 靖边县| 崇义县| 呼图壁县| 龙游县| 如皋市| 抚州市|