返回php中curl类常用方法封装和详解

curl_init  时间:2021-04-19  阅读:()

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;

腾讯云2核4GB内存8M带宽 年74元

一般大厂都是通过首年才有可以享受爆款活动,然后吸引我们注册他们商家达到持续续费和购买的目的。一般只有大厂才能有这样的魄力和能力首年亏本,但是对于一般的公司和个人厂家确实难过,这几年确实看到不少的同类商家难以生存。这里我们可以看到有对应的套餐方案。不过这两个套餐都是100%CPU独享的,不是有某云商家限制CPU的。但是轻量服务器有个不好的就是带宽是较大且流量是限制的额,分别是1GB和1.2TB月流量...

DMIT:新推出美国cn2 gia线路高性能 AMD EPYC/不限流量VPS(Premium Unmetered)$179.99/月起

DMIT,最近动作频繁,前几天刚刚上架了日本lite版VPS,正在酝酿上线日本高级网络VPS,又差不多在同一时间推出了美国cn2 gia线路不限流量的美国云服务器,不过价格太过昂贵。丐版只有30M带宽,月付179.99 美元 !!目前美国云服务器已经有个4个套餐,分别是,Premium(cn2 gia线路)、Lite(普通直连)、Premium Secure(带高防的cn2 gia线路),Prem...

白丝云-美国圣何塞4837/德国4837大带宽/美西9929,26元/月起

官方网站:点击访问白丝云官网活动方案:一、KVM虚拟化套餐A1核心 512MB内存 10G SSD硬盘 800G流量 2560Mbps带宽159.99一年 26一月套餐B1核心 512MB内存 10G SSD硬盘 2000G流量 2560Mbps带宽299.99一年 52一月套餐...

curl_init为你推荐
CouriercssgeneratingcssToolgraph人才ipad支持ipad支持ipad支持ipad支持ipadgetIntjavaeacceleratorW3S是什么意思
info域名注册 域名论坛 vps是什么意思 域名备案号查询 technetcal 香港服务器99idc 分销主机 mach 优key 便宜建站 68.168.16.150 一点优惠网 华为网络硬盘 e蜗 web服务器安全 服务器是干什么用的 我的世界服务器ip 新加坡空间 杭州电信宽带优惠 winserver2008r2 更多