返回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;

CheapWindowsVPS:7个机房可选全场5折,1Gbps不限流量每月4.5美元

CheapWindowsVPS是一家成立于2007年的老牌国外主机商,顾名思义,一个提供便宜的Windows系统VPS主机(同样也支持安装Linux系列的哈)的商家,可选数据中心包括美国洛杉矶、达拉斯、芝加哥、纽约、英国伦敦、法国、新加坡等等,目前商家针对VPS主机推出5折优惠码,优惠后最低4GB内存套餐月付仅4.5美元。下面列出几款VPS主机配置信息。CPU:2cores内存:4GB硬盘:60G...

PhotonVPS:$4/月,KVM-2GB/30GB/2TB/洛杉矶&达拉斯&芝加哥等

很久没有分享PhotonVPS的消息,最近看到商家VPS主机套餐有一些更新所以分享下。这是一家成立于2008年的国外VPS服务商,Psychz机房旗下的站点,主要提供VPS和独立服务器等,数据中心包括美国洛杉矶、达拉斯、芝加哥、阿什本等。目前,商家针对Cloud VPS提供8折优惠码,优惠后最低2G内存套餐每月4美元起。下面列出几款主机配置信息。CPU:1core内存:2GB硬盘:30GB NVm...

新网,域名7月盛夏1核心2G内存.COM域名仅19.9元/首年,主机9.9元/月,企业邮箱0元体验

新网好不好?新网域名便宜吗?新网怎么样?新网是国内老牌知名域名注册商,企业正规化运营,资质齐全,与阿里云万网和腾讯云DNSPOD同为国内服务商巨头。近日新网发布了最新的七月放价季优惠活动,主要针对域名、云主机、企业邮箱、SSL证书等多款云产品推送了超值的优惠,其中.com顶级域名仅19.9元/首年,.cn域名仅16元/首年,云主机1核心2G内存3Mbps带宽仅9.9元/月,企业邮箱更是免费送1年,...

curl_init为你推荐
桂林飞宇科技股份有限公司V1.2您的iphone支出127动设备管理解决支持ipadipadwifiIPAD连上了WIFI,但是无法上网,急!!x-routerx-0.4x等于多少?phpecho为什么在PHP中使用echo FALSE;什么也输出不了?应该如何输出FALSE?谢谢!iphonewifi苹果手机怎么扫二维码连wifigoogle搜图google的直接搜索图片的功能为什么没了
广州服务器租用 到期域名查询 申请免费域名 火山主机 贵州电信宽带测速 双拼域名 空间论坛 699美元 服务器合租 息壤代理 drupal安装 空间购买 web应用服务器 杭州电信宽带优惠 注册阿里云邮箱 金主 稳定空间 睿云 免备案jsp空间 防盗链 更多