curl是PHP的一个扩展,利用该扩展可以实现服务器之间的数据或文件传输,
也就是说curl就是一个工具,用来做服务器之间数据、文件传输的工具,用来采集网络中的html网页文件、其他服务器提供接口数据等。
看过PbootCms的源码,看到对cURL的封装还是比较全面的,摘录出来给大家分享一下。
// 执行URL请求,并返回数据 function get_url($url, $fields = array(), $UserAgent = null, $vfSSL = false) { $SSL = substr($url, 0, 8) == "https://" ? true : false; $ch = curl_init(); if ($UserAgent) { // 在HTTP请求中包含一个"User-Agent: "头的字符串。 curl_setopt($ch, CURLOPT_USERAGENT, $UserAgent); } else { curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]); } curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60); // 在发起连接前等待的时间,如果设置为0,则无限等待 curl_setopt($ch, CURLOPT_TIMEOUT, 90); // 设置cURL允许执行的最长秒数 curl_setopt($ch, CURLOPT_URL, $url); // 设置请求地址 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。 // SSL验证 if ($SSL) { if ($vfSSL) { curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($ch, CURLOPT_CAINFO, CORE_PATH . '/cacert.pem'); } else { curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 信任任何证书 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // 不检查证书中是否设置域名 } } // 数据字段 if ($fields) { curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); } $output = curl_exec($ch); if (curl_errno($ch)) { error('请求远程地址错误:' . curl_error($ch)); } curl_close($ch); return $output; }
之前在每日一图的教程中有用过,简单粗暴。
$url = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1'; $data = json_decode(get_url($url));
$data=array(); get_url($url,$data);
诸多用法不一一举例,请自行尝试。
文章评论(审核通过可见)