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;
运作了18年的德国老牌机房contabo在继去年4月开办了第一个美国数据中心(中部城市:圣路易斯)后立马在本月全新上马两个数据中心:纽约、西雅图。当前,为庆祝美国独立日,美国三个数据中心的VPS全部免除设置费,VPS本身的配置很高,价格适中,有较高的性价比!官方网站:https://contabo.com/en/SSD VPSKVM虚拟,纯SSD阵列,不限制流量,自带一个IPv4内存CPUSSD带...
licloud怎么样?licloud目前提供香港cmi服务器及香港CN2+BGP服务器/E3-1230v2/16GB内存/240GB SSD硬盘/不限流量/30Mbps带宽,$39.99/月。licloud 成立於2021年,是香港LiCloud Limited(CR No.3013909)旗下的品牌,主要提供香港kvm vps,分为精简网络和高级网络A、高级网络B,现在精简网络和高级网络A。现在...
zoecloud怎么样?zoecloud是一家国人商家,5月成立,暂时主要提供香港BGP KVM VPS,线路为AS41378,并有首发永久8折优惠:HKBGP20OFF。目前,解锁香港区 Netflix、Youtube Premium ,但不保证一直解锁,谢绝以不是原生 IP 理由退款。不保证中国大陆连接速度,建议移动中转使用,配合广州移动食用效果更佳。点击进入:zoecloud官方网站地址zo...