
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地址访问网址,是最基本的用法。
示例:
<?php
//GET方式抓取页面
$ch = curl_init(); //初始化
$url = "http://baidu.com"; //设置抓取URL地址
curl_setopt($ch,CURLOPT_URL,$url);//GET方式抓取URL
curl_exec($ch);//执行
curl_close($ch);//关闭 ?>
二、curl函数处理GET数据
有时候通过GET方式获取页面并不需要全部的数据,而需要截取部分数据,这时候需要通过CURLOPT_RETURNTRANSFER选项将页面以文件流的形式保存,然后进行输出。
示例:
<?php $url ="http://apix.sinaapp.com/joke/?appkey=trialuser";
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$output = curl_exec($ch);
curl_close($ch);
echo $output; ?>
三、curl函数模拟POST请求
根据HTTP规范,POST用于向服务器提交数据,典型的应用为表单提交,安全性较GET方式安全。模拟POST请求需要使用CURLOPT_POST和CURLOPT_POSTFIELDS两个选项。
四、curl函数模拟POST上传文件
POST另一个应用为上传文件,微信的高级接口也开放多媒体文件上传功能。文件上传的加密方式为multipart/form-data,POST内容需要为数组格式。
//模拟POST上传文件
//POST提交内容
$post = array("filename"=>"@D:\AppServ\www\curl\yunzhimeng.jpg");
$url = "http://yzmweixin.sinaapp.com/uplode.php";//上传地址
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,1);//模拟POST
curl_setopt($ch,CURLOPT_POSTFIELDS,$post);//POST内容
curl_exec($ch);
curl_close($ch);