/**
* 简单的通用curl
* @param string $url 请求地址
* @param string|array $data 请求的数据
* @param string $method 请求方式
* @param array $options curl配置
* @param bool $isGetInfo 是否获取请求结果信息
* @return bool|string
*/
function doCurl(string $url, $data = '', $method = 'GET', $options = [], $isGetInfo = false)
{
//初始化
$ch = curl_init();
//设置选项
$config = [
CURLOPT_URL => $url, //请求地址
CURLOPT_RETURNTRANSFER => 1, //以文件流的形式返回,不直接输出
CURLOPT_SSL_VERIFYPEER => false, //不进行ssl验证
CURLOPT_SSL_VERIFYHOST => false, //不进行ssl验证
CURLOPT_TIMEOUT_MS => 10000, //执行的最长毫秒数
CURLOPT_CONNECTTIMEOUT_MS => 10000, //尝试连接等待的时间,以毫秒为单位。如果设置为0,则无限等待
CURLOPT_CUSTOMREQUEST => $method //请求方式
];
if (!empty($data)) {
$config[CURLOPT_POSTFIELDS] = $data;
}
if (!empty($options)) {
foreach ($options as $key => $value) {
$config[$key] = $value;
}
}
//加载设置选项
curl_setopt_array($ch, $config);
//执行并获取内容 抓取URL并把它传递给浏览器
$output = curl_exec($ch);
if ($isGetInfo) {
$output = [
'output' => $output,
'getInfo' => curl_getinfo($ch),
];
}
//错误信息
if ($error = curl_error($ch)) {
var_dump($error);
}
//关闭cURL资源,并且释放系统资源
curl_close($ch);
return $output;
}
PHP 通用curl简单封装,可以获取header,灵活配置
最新推荐文章于 2021-08-31 09:07:31 发布