PHP的cURL函数是通过libcurl库与服务器使用各种类型的协议进行连接和通信的,curl目前支持HTTP GET 、HTTP POST 、HTTPS认证、FTP上传、HTTP基于表单的上传、cookie和用户名+密码的认证等,功能十分强大。
在PHP中建立cURL请求的基本步骤:
1、初始化
2、设置变量
3、执行并获取结果
4、释放cURL句柄
curl的几个重要的函数:
1、curl_init:初始化一个cURL会话
2、curl_setopt:设置cURL传输选项(关键)
3、curl_exec:执行一个cURL会话
4、curl_close:关闭一个cURL会话
一、curl函数模拟GET
根据HTTP规范,GET用于信息的获取,可以理解为通过URL地址访问网址,是最基本的用法。
示例:
1 <?php 2 //GET方式抓取页面 3 $ch = curl_init(); //初始化 4 $url = "http://baidu.com"; //设置抓取URL地址 5 curl_setopt($ch,CURLOPT_URL,$url);//GET方式抓取URL 6 curl_exec($ch);//执行 7 curl_close($ch);//关闭 8 9 ?>
二、curl函数处理GET数据
有时候通过GET方式获取页面并不需要全部的数据,而需要截取部分数据,这时候需要通过CURLOPT_RETURNTRANSFER选项将页面以文件流的形式保存,然后进行输出。
示例:
1 <?php 2 3 $url ="http://apix.sinaapp.com/joke/?appkey=trialuser"; 4 $ch = curl_init(); 5 curl_setopt($ch,CURLOPT_URL,$url); 6 curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 7 $output = curl_exec($ch); 8 curl_close($ch); 9 echo $output; 10 11 ?>
三、curl函数模拟POST请求
根据HTTP规范,POST用于向服务器提交数据,典型的应用为表单提交,安全性较GET方式安全。模拟POST请求需要使用CURLOPT_POST和CURLOPT_POSTFIELDS两个选项。
四、curl函数模拟POST上传文件
POST另一个应用为上传文件,微信的高级接口也开放多媒体文件上传功能。文件上传的加密方式为multipart/form-data,POST内容需要为数组格式。
1 //模拟POST上传文件 2 //POST提交内容 3 $post = array("filename"=>"@D:AppServwwwcurlyunzhimeng.jpg"); 4 $url = "http://yzmweixin.sinaapp.com/uplode.php";//上传地址 5 $ch = curl_init(); 6 curl_setopt($ch,CURLOPT_URL,$url); 7 curl_setopt($ch,CURLOPT_POST,1);//模拟POST 8 curl_setopt($ch,CURLOPT_POSTFIELDS,$post);//POST内容 9 curl_exec($ch); 10 curl_close($ch);