CURL速度慢可能与Expect:100-Continue有关,可以修改下代码试验一下:
$header = is_array($header) ? array_merge($header,['Expect:',]) : ['Expect:'];
//curl网址
function curl($url,$header){
$header = is_array($header) ? array_merge($header,['Expect:',]) : ['Expect:'];
$ch = curl_init ();
curl_setopt($ch,CURLOPT_TIMEOUT,60); //最长秒数
curl_setopt($ch, CURLOPT_URL, $url); //访问的url
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //禁用后cURL将终止从服务端进行验证。
curl_setopt($ch, CURLOPT_HEADER, FALSE); //启用时会将头文件的信息作为数据流输出。
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); //将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。
if ($header !== null) {
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
}
$res = curl_exec ($ch);
curl_close ($ch);
return $res;
}
//curl网址 数据
function postCurl($url,$data,$header = null){
$header = is_array($header) ? array_merge($header,['Expect:',]) : ['Expect:'];
$ch = curl_init ();
curl_setopt($ch,CURLOPT_TIMEOUT,60); //最长秒数
curl_setopt($ch, CURLOPT_URL, $url); //访问的url
curl_setopt($ch, CURLOPT_POST, 1 ); //启用时会发送一个常规的POST请求
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //禁用后cURL将终止从服务端进行验证。
curl_setopt($ch, CURLOPT_HEADER, FALSE); //启用时会将头文件的信息作为数据流输出。
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); //将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。
if ($header !== null) {
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
}
//php7.0 curl post文件需要用CURLFile类
if (is_array($data)) {
foreach ($data as $key => $value) {
if (!is_array($value) && strpos($value,'@') !== FALSE) {
$file=str_replace('@', '',$value);
$data[$key]=curl_file_create(str_replace('@', '',$value));
}
}
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
} else {
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
$res = curl_exec ( $ch );
curl_close ($ch);
return $res;
}