p hp中c ur l类常用方法封装和详解c url对于PHP开发这来说是经常用到的一个类.在抓取远程文件或是内容的时候就更常用了.不过原生态的c ur l类比较复杂,尤其对于新手来说,很多参数很容易让人头晕,现在好了.这个类是封装了几个常用的curl函数.可以实现抓取远程文件,模拟提交数据等功能.
/*
*来源:http://www.xu ehuw ang.c o m/
*作者:雪狐博客
*类用途:实现抓取原创内容class CURLvar$cookie_file; //设置Cookie文件保存路径及文件名v ar$lo g inur l;//登陆地地址var$actionstr;//登陆参数func tion__c ons truc t()
$this-c ookie_file=dirname(__FILE__). /c ookie_.md5(bas ename(__FILE__)). .txtif(!file_ex is ts($this-c ookie_file))
{ //检测Cookie是否存在
$s tr=$this-vget(‘jroam’); //获取登录随机值preg_match( /name=\formhash\value=\ (.*?)\/is ,$str,$hash); //提取登录随机值
$this-vlo gin($this- lo ginur l,$this-ac tions tr); //登录获取Co okiefunction vlogin($ur l,$data){ //模拟登录获取Cookie函数
$curl=curl_in it(); //启动一个CURL会话curl_setopt($curl,CURLOPT_URL, $url); //要访问的地址curl_s etopt($curl,CURLOPT_S SL_VERIF YPEER,0); //对认证证书来源的检查
curl_setopt($curl,CURLOPT_S SL_VERIF YHOST, 1); //从证书中检查S SL加密算法是否存在curl_s etopt($curl,CURLOPT_US ERAG ENT, $_SERVER[‘HTTP_USER_AG ENT’]); //模拟用户使用的浏览器curl_setopt($curl,CURLOPT_FOLLOWLOCATION, 1); //使用自动跳转curl_s etopt($curl,CURLOPT_AUTOREF ERER, 1); // 自动设置Referercurl_setopt($curl,CURLOPT_POST, 1); //发送一个常规的Post请求curl_s etopt($curl,CURLOPT_P OSTFIELDS, $data); //Post提交的数据包curl_s etopt($curl,CURLOPT_COO KIEJAR, $this-c ookie_file); //存放Cookie信息的文件名称curl_s etopt($curl, CURLOPT_COO KIEFILE, $this- c ookie_file); //读取上面所储存的Cookie信息curl_s etopt($curl,CURLOPT_TIMEOUT, 30); //设置超时限制防止死循环curl_setopt($curl,CURLOPT_HEADER,0); //显示返回的Header区域内容curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1); //获取的信息以文件流的形式返回
$tmpInfo=curl_exec($curl); //执行操作if(c url_errno($c url)) {ec ho‘Errno’.c url_error($c url);curl_c los e($curl); //关闭CURL会话r eturn$tmp I nfo; //返回数据function vget($url){ //模拟获取内容函数
$curl=curl_in it(); //启动一个CURL会话curl_setopt($curl,CURLOPT_URL, $url); //要访问的地址curl_s etopt($curl,CURLOPT_S SL_VERIF YPEER,0); //对认证证书来源的检查
curl_setopt($curl,CURLOPT_S SL_VERIF YHOST, 1); //从证书中检查S SL加密算法是否存在curl_s etopt($curl,CURLOPT_US ERAG ENT, $_SERVER[‘HTTP_USER_AG ENT’]); //模拟用户使用的浏览器curl_setopt($curl,CURLOPT_FOLLOWLOCATION, 1); //使用自动跳转curl_s etopt($curl,CURLOPT_AUTOREF ERER, 1); // 自动设置Referercurl_s etopt($curl,CURLOPT_HTTPGET, 1); //发送一个常规的Post请求curl_s etopt($curl, CURLOPT_COO KIEFILE, $this- c ookie_file); //读取上面所储存的Cookie信息curl_s etopt($curl,CURLOPT_TIMEOUT, 30); //设置超时限制防止死循环curl_setopt($curl,CURLOPT_HEADER,0); //显示返回的Header区域内容curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1); //获取的信息以文件流的形式返回
$tmpInfo=curl_exec($curl); //执行操作if(c url_errno($c url)) {ec ho‘Errno’.c url_error($curl);curl_c los e($curl); //关闭CURL会话r eturn$tmp I nfo; //返回数据function vpost($url,$data){ //模拟提交数据函数
$curl=curl_in it(); //启动一个CURL会话curl_setopt($curl,CURLOPT_URL, $url); //要访问的地址curl_s etopt($curl,CURLOPT_S SL_VERIF YPEER,0); //对认证证书来源的检查curl_setopt($curl,CURLOPT_S SL_VERIF YHOST, 1); //从证书中检查S SL加密算法是否存在curl_s etopt($curl,CURLOPT_US ERAG ENT, $_SERVER[‘HTTP_USER_AG ENT’]); //模拟用户使用的浏览器
curl_setopt($curl,CURLOPT_FOLLOWLOCATION, 1); //使用自动跳转curl_s etopt($curl,CURLOPT_AUTOREF ERER, 1); // 自动设置Referercurl_setopt($curl,CURLOPT_POST, 1); //发送一个常规的Post请求curl_s etopt($curl,CURLOPT_POSTFIELDS, $data); //Post提交的数据包curl_s etopt($curl, CURLOPT_COO KIEFILE, $this- c ookie_file); //读取上面所储存的Cookie信息curl_s etopt($curl,CURLOPT_TIMEOUT, 30); //设置超时限制防止死循环curl_setopt($curl,CURLOPT_HEADER,0); //显示返回的Header区域内容curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1); //获取的信息以文件流的形式返回
$tmpInfo=curl_exec($curl); //执行操作if(c url_errno($c url)) {ec ho‘Errno’.c url_error($c url);curl_c los e($curl); //关键CURL会话r eturn$tmp I nfo; //返回数据function delc ookie($c ookie_file){ //删除Cookie函数
@unlink($c ookie_file); //执行删除
使用方法
//应用实例
$mycurl=new CURL();
$myc url- lo ginur l=http://192.168.0.2/lo gin.php//登陆地址
$mycurl-actionstr=user_name=111 amp;uspassword=1234//参数串;$ur l 1=‘http://192.168.0.2/u s er lis t.p hp
$htmlc ontent=$myc url-vget($url 1); //输出目标地址源码ec ho$htmlc ontent;
对于一般的用户来说,我们使用宝塔面板免费版本功能还是足够的,如果我们有需要付费插件和专业版的功能,且需要的插件比较多,实际上且长期使用的话,还是购买付费专业版或者企业版本划算一些。昨天也有在文章中分享年中促销活动。如今我们是否会发现,我们在安装宝塔面板后是必须强制我们登录账户的,否则一直有弹出登录界面,我们还是注册一个账户比较好。反正免费注册宝塔账户还有代金券赠送。 新注册宝塔账户送代金券我们注册...
sharktech怎么样?sharktech (鲨鱼机房)是一家成立于 2003 年的知名美国老牌主机商,又称鲨鱼机房或者SK 机房,一直主打高防系列产品,提供独立服务器租用业务和 VPS 主机,自营机房在美国洛杉矶、丹佛、芝加哥和荷兰阿姆斯特丹,所有产品均提供 DDoS 防护。此文只整理他们家10Gbps专用服务器,此外该系列所有服务器都受到高达 60Gbps(可升级到 100Gbps)的保护。...
ZJI原名维翔主机,是原来Wordpress圈知名主机商家,成立于2011年,2018年9月更名为ZJI,提供香港、日本、美国独立服务器(自营/数据中心直营)租用及VDS、虚拟主机空间、域名注册业务。ZJI今年全新上架了台湾CN2线路服务器,本月针对香港高主频服务器和台湾CN2服务器提供7折优惠码,其他机房及产品提供8折优惠码,优惠后台湾CN2线路E5服务器月付595元起。台湾一型CPU:Inte...