/**
* curl请求方法
* @author zt8067
* @param $url string
* @param $data array json
* @param $header array CURLOPT_HTTPHEADER 设置 HTTP 头字段的数组。格式: array('Content-type: text/plain', 'Content-length: 100')
* @return array
*/
public static function curl_send($url, $data = '', $header = [], $type = 'GET', $authentication = false, $timeout = 60)
{
$ch = curl_init(); // 初始一个curl会话
curl_setopt($ch, CURLOPT_URL, $url); // 设置url
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
if ('POST' == strtoupper($type)) {
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
if (!empty($header)) {
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
}
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3); // PHP脚本在成功连接服务器前等待多久,单位秒
curl_setopt($ch, CURLOPT_HEADER, 0);
if ($timeout > 0) {
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
}
if ($authentication) {
curl_setopt($ch, CURLOPT_USERPWD, $authentication);
}
$result = curl_exec($ch); // 抓取URL并把它传递给浏览器
// 是否报错
if (curl_errno($ch) != 0) {
$error = '发送CURL时发生错误:' . curl_error($ch) . '(code:' . curl_errno($ch) . ')' . PHP_EOL;
curl_close($ch);
return ["error" => $error];
}
curl_close($ch); // //关闭cURL资源,并且释放系统资源
return $result;
}
// 自调用实现伪异步
// $url= ‘’;
//
p
a
r
a
m
s
=
′
′
;
c
u
r
l
s
e
n
d
(
params= ''; curl_send(
params=′′;curlsend(url, $params,[],‘GET’,false,1);//timeout 1 不等待返回
//