PHP 非同步的curl

2021-07-15 05:23:23 字數 1146 閱讀 9192

php是不支援執行緒的,但是我們有總想並行地乾一些事情,比如,同時執行多個http的請求,如果使用多程序的話,有兩個問題:

1. 不能跨平台

2. 建立程序的開銷似乎大了些

於是,我們就想到了使用非同步來達到類似並行的效果,曾經早就寫程式實現過,不過是很初級的,現在curl幫我們實現了,只是目前網上的文件還少一些,這個貢獻一些。

<?php

$nodes = array('', '', '');

$node_count = count($nodes);

$curl_arr = array();

$master = curl_multi_init();

for($i = 0; $i < $node_count; $i++)

do while($running > 0);

echo "results: ";

for($i = 0; $i < $node_count; $i++)

echo 'done';

?>

let』s get one thing out in the open. curl is sweet. it does it』s job very well, and i』m absoutely thrilled it exists.

unfortunately using the curl_multi_exec is poorly documented in the php manual.

google: .1s

microsoft: .3s

rustyrazorblade.com: .5s

your total time will be .9s, just for api calls.

by using curl_multi_exec, you can execute those requests in parallel, and you』ll only be limited by the slowest request, which is about .5 sec to rustyrazorblade in this case, assuming your download bandwidth is not slowing you down.

sample code:

PHP開發 curl的使用

環境配置成功後,呼叫curl exec方法可能會存在無返回值的問題。首先確認你訪問的是否為https,curl訪問url時預設是進行ssl認證的,所以需加上以下 curl setopt ch,curlopt ssl verifypeer,false 不驗證證書 curl setopt ch,curl...

PHP中curl的使用

說明 5.4 curl上傳檔案只支援 語法 5.5 支援 語法和curlfile類 大於 5.6 只支援curlfile類 相容性寫法參考示例 function curl upload url,source else data array file realpath source 5.5 curl ...

PHP擴充套件CURL的用法

1 使用curl模擬post表單提交 建立curl控制代碼 curl setopt ch,curlopt returntransfer,true 獲得返回內容,但不需要直接輸出到頁面上 curl setopt ch,curlopt postfields,data post提交的引數寫在乙個陣列裡面 ...