PHP中curl的用法
2016-03-22 23:55
666 查看
curl,即CommandLine Uniform Resource Locator,它是利用URL语法在命令行方式下工作的开源文件传输工具。
PHP中支持的curl扩展库,允许你与各种服务器使用各种类型的协议进行连接和通讯。libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持HTTPS认证、HTTP
GET、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的文件上传、代理、cookies和用户名+密码的认证。
1. 加载php的curl扩展
要想在php中使用curl,必须加载php的curl扩展库,这样就可以使用curl扩展库中的各个函数。
修改php的配置文件php.ini,开启curl扩展。
extension=php_curl.dll
2. 使用curl的基本步骤
使用 curl_init() 初始化,一个curl会话。
使用 curl_setopt() 设置需要的全部选项。
使用 curl_exec() 来执行会话。
使用 curl_close() 关闭 curl 会话,释放系统资源。
3. 利用curl模拟浏览器向服务器发出post请求
假设请求的url地址是 http://demo.com/index.php,该url地址指向的文件内容,如下:
<?php
header("content-type:text/html;charset=utf-8");
echo "以下是打印的post数据:"."<br/>";
var_dump($_POST);
?>
包含curl的php脚本文件的url地址是 http://demo.com/test.php,内容如下:
<?php
header("content-type:text/html;charset=utf-8"); // 告诉浏览器客户端,用utf-8字符集解析字符
// 1.创建一个curl会话资源
$ch = curl_init('http://demo.com/index.php');
$postData = array('id'=>1, 'name'=>'小明', 'sex'=>'男'); // post请求传输的参数
// 2.设置curl会话的选项
curl_setopt($ch, CURLOPT_HEADER, 0); // 是否输出头文件的信息:0否,1是
curl_setopt($ch, CURLOPT_POST, 1); // 是否使用post请求:0否,1是
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); // post请求的参数
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); // 是否将获取的页面信息返回(而不是直接输出):0否,1是
// 3.执行curl会话,默认会将获取的页面信息直接输出到浏览器。成功返回true, 失败返回false。
// 然而,如果 CURLOPT_RETURNTRANSFER选项开启,curl_exec()函数执行成功时会返回执行的结果,失败时false。
$res = curl_exec($ch);
echo '<br>';
var_dump($res);
$info = curl_getinfo($ch); // 获取curl连接资源句柄的信息
echo "<br>";
echo "<pre>";
var_dump($info);
echo "<pre/>";
// 4.关闭curl会话,并且释放系统资源
curl_close($ch);
?>
如此,在浏览器中输入 http://demo.com/test.php,就可以用curl模拟浏览器post传值。
PHP中支持的curl扩展库,允许你与各种服务器使用各种类型的协议进行连接和通讯。libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持HTTPS认证、HTTP
GET、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的文件上传、代理、cookies和用户名+密码的认证。
1. 加载php的curl扩展
要想在php中使用curl,必须加载php的curl扩展库,这样就可以使用curl扩展库中的各个函数。
修改php的配置文件php.ini,开启curl扩展。
extension=php_curl.dll
2. 使用curl的基本步骤
使用 curl_init() 初始化,一个curl会话。
使用 curl_setopt() 设置需要的全部选项。
使用 curl_exec() 来执行会话。
使用 curl_close() 关闭 curl 会话,释放系统资源。
3. 利用curl模拟浏览器向服务器发出post请求
假设请求的url地址是 http://demo.com/index.php,该url地址指向的文件内容,如下:
<?php
header("content-type:text/html;charset=utf-8");
echo "以下是打印的post数据:"."<br/>";
var_dump($_POST);
?>
包含curl的php脚本文件的url地址是 http://demo.com/test.php,内容如下:
<?php
header("content-type:text/html;charset=utf-8"); // 告诉浏览器客户端,用utf-8字符集解析字符
// 1.创建一个curl会话资源
$ch = curl_init('http://demo.com/index.php');
$postData = array('id'=>1, 'name'=>'小明', 'sex'=>'男'); // post请求传输的参数
// 2.设置curl会话的选项
curl_setopt($ch, CURLOPT_HEADER, 0); // 是否输出头文件的信息:0否,1是
curl_setopt($ch, CURLOPT_POST, 1); // 是否使用post请求:0否,1是
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); // post请求的参数
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); // 是否将获取的页面信息返回(而不是直接输出):0否,1是
// 3.执行curl会话,默认会将获取的页面信息直接输出到浏览器。成功返回true, 失败返回false。
// 然而,如果 CURLOPT_RETURNTRANSFER选项开启,curl_exec()函数执行成功时会返回执行的结果,失败时false。
$res = curl_exec($ch);
echo '<br>';
var_dump($res);
$info = curl_getinfo($ch); // 获取curl连接资源句柄的信息
echo "<br>";
echo "<pre>";
var_dump($info);
echo "<pre/>";
// 4.关闭curl会话,并且释放系统资源
curl_close($ch);
?>
如此,在浏览器中输入 http://demo.com/test.php,就可以用curl模拟浏览器post传值。
相关文章推荐
- php 异常Exception
- WinServer-IIS-FTP服务器
- Laravel 如何在Blade模板中能够根据不同的子页面附加不同的js和CSS
- PHP中获取当前页面的完整URL
- Laravel 数据库
- mac 安装php7
- php的一些小笔记--数组
- Yaf安装和配置
- php安装及相关配置
- PHP中字符串比较的常用方法
- LastPass: Free Password Manager(密码保存)
- LastPass: Free Password Manager(密码保存)
- ThinkPHP 验证码类 Verify
- 第四课 简单PHP程序
- 编译PHP出错如何解决
- sso单点登录的PHP实现(Laravel框架)
- 各大免费邮箱邮件群发账户SMTP服务器配置及SMTP发送量限制情况
- 各大免费邮箱邮件群发账户SMTP服务器配置及SMTP发送量限制情况
- 各大免费邮箱邮件群发账户SMTP服务器配置及SMTP发送量限制情况
- PHP中如何获取字符串的长度