PHP中curl的用法

来源:互联网 发布:boo语言与python区别 编辑:程序博客网 时间:2024/05/12 04:12
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传值。


1 0
原创粉丝点击