來源:轉(zhuǎn)載 發(fā)布時(shí)間:2018-11-21 11:45:36 閱讀量:753
本篇文章給大家?guī)淼膬?nèi)容是關(guān)于php使用curl模擬多線程發(fā)送請求的代碼示例,有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對你有所幫助。
每個(gè)PHP文件的執(zhí)行是單線程的,但是php本身也可以用一些別的技術(shù)實(shí)現(xiàn)多線程并發(fā)比如用php-fpm進(jìn)程,這里用curl模擬多線程發(fā)送請求。php的curl多線程是通過不斷調(diào)用curl_multi_exec來獲取內(nèi)容,這里舉一個(gè)demo來模擬一次curl多線程并發(fā)操作。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
|
我再服務(wù)器上建立一起請求的php頁面命名為test.php,內(nèi)容如下
1 2 |
|
表示等待十秒后數(shù)據(jù)下面語句。
然后我在命令行執(zhí)行該程序結(jié)果如下:
上面代碼中通過循環(huán)$curl_Arr數(shù)組來調(diào)用curl_multi_getcontent來查詢是否有數(shù)據(jù)。有數(shù)據(jù)就輸出并刪除元素,直到$curl_Arr數(shù)組元素個(gè)數(shù)為0。
該模擬多線程實(shí)現(xiàn)是通過使用curl的curl_multi系列函數(shù)能實(shí)現(xiàn)此功能的。至于該系列函數(shù)使用介紹,百度一搜一大把。這里就不做說明了。