标题: Php curl可扩展封装函数1.1
时间: 2017-11-04发布,2017-11-05修改
function curl($url, $post = '', $option = [], $default = true)
{
/*
* curl 1.1 3ghh.cn
* @param string $url:url地址
* @param string|array $post:post数据(可选)
* @param null|array $option:扩展选项(可选)
* @param bool $default:默认选项(可选)
* @return ArrayObject echo curl('http://3ghh.cn','',['CONNECTTIMEOUT'=>1])->result;
*/
#初始化
$ch = curl_init();
#选项
//请求的URL
curl_setopt($ch, CURLOPT_URL, $url);
//POST数据
$post == '' ?: curl_setopt($ch, CURLOPT_POST, true) && curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
#固定选项
//不自动打印结果
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//info中包含请求头 return array
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
//验证证书
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
//指定协议
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
//自动解压编码格式
curl_setopt($ch, CURLOPT_ACCEPT_ENCODING, '');
if ($default == true) {
#默认选项
//使用浏览器者UA
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
//请求超时时间,单位秒
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
//重定向跟踪
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
//result中包含响应头部内容
curl_setopt($ch, CURLOPT_HEADER, false);
//result中不包含响应主体内容
curl_setopt($ch, CURLOPT_NOBODY, false);
//设置Cookie文件保存位置
$cookie_file = getcwd() . '/cookie.tmp';//函数调用代码所在脚本的目录
//将请求时得到的Cookie保存 (要保存请将fasle改为$cookie_file)
curl_setopt($ch, CURLOPT_COOKIEJAR, false);
}
if ($option != null && is_array($option)) {
#扩展选项
foreach ($option as $key => $value) {
curl_setopt($ch, constant('CURLOPT_' . $key), $value);
}
}
#执行
$result = curl_exec($ch);
$info = curl_getinfo($ch);
//错误处理
$error = $errno = NULL;
if ($errno = curl_errno($ch)) {
$result = $error = curl_error($ch);
}
#关闭
curl_close($ch);
//创建数组对象
$out = new ArrayObject();
#结果
$out->result = $result;
#信息
$out->info = $info;
#错误代码
$out->errno = $errno;
#错误提示
$out->error = $error;
//返回数组对象
return $out;
}
『回复列表(11|隐藏机器人聊天)』