<?php
namespace app\common\controller;
class Curl
{
public function createUrl($url, $query)
{
$query = http_build_query($query);
$url .= $query;
return $url;
}
public function singleCurl($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
return $ch;
}
//多进程curl
public function multiCurl($ch_arr)
{
$mh = curl_multi_init();
foreach ($ch_arr as $k => $c) {
curl_multi_add_handle($mh, $ch_arr[$k]);
}
//执行批处理
$active = null;
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && $mrc == CURLM_OK) {
usleep(50000);
if (curl_multi_select($mh) != -1) {
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
foreach ($ch_arr as $k => $v) {
if (curl_error($ch_arr[$k]) == '') {
$res[$k] = json_decode(curl_multi_getcontent($ch_arr[$k]), true);
}
curl_close($ch_arr[$k]);
}
curl_multi_close($mh);
return $res;
}
}