1、什么是cURL
cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。最爽的是,PHP也支持 cURL 库。本文将介绍 cURL 的一些高级特性,以及在PHP中如何运用它。
2.为什么要用 喜欢用cURL?
是的,我们可以通过其他办法获取网页内容。大多数时候,我因为想偷懒,都直接用简单的PHP函数:
不过,这种做法缺乏灵活性和有效的错误处理。而且,你也不能用它完成一些高难度任务——比如处理coockies、验证、表单提交、文件上传等等。
引用:
cURL 是一种功能强大的库,支持很多不同的协议、选项,能提供 URL 请求相关的各种细节信息。
3.CURL基本结构
在学习更为复杂的功能之前,先来看一下在PHP中建立cURL请求的基本步骤:
1 初始化
2 设置变量
3 执行并获取结果
4 释放cURL句柄
4、代码说明以下为引用的内容:
// 1. 初始化
$ch = curl_init();
// 2. 设置选项,包括URL
curl_setopt($ch, CURLOPT_URL, "http://tqybw.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
// 3. 执行并获取HTML文档内容
$output = curl_exec($ch);
// 4. 释放curl句柄
curl_close($ch);
5、检查错误
你可以加一段检查错误的语句(虽然这并不是必需的):
$output = curl_exec($ch);
if ($output === FALSE) {
echo "cURL Error: " . curl_error($ch);
}
请注意,比较的时候我们用的是“=== FALSE”,而非“== FALSE”。因为我们得区分 空输出 和 布尔值FALSE,后者才是真正的错误。
用POST方法发送数据
当发起GET请求时,数据可以通过“查询字串”(query string)传递给一个URL。例如,在google中搜索时,搜索关键即为URL的查询字串的一部分:
http://www.google.com/search?q=nettuts
这种情况下你可能并不需要cURL来模拟。把这个URL丢给“file_get_contents()”就能得到相同结果。
不过有一些HTML表单是用POST方法提交的。这种表单提交时,数据是通过 HTTP请求体(request body) 发送,而不是查询字串。例如,当使用CodeIgniter论坛的表单,无论你输入什么关键字,总是被POST到如下页面:
http://tqybw.net
你可以用PHP脚本来模拟这种URL请求。首先,新建一个可以接受并显示POST数据的文件
<?php
//使用discuzX2.0作测试
//创建cookie临时文件
$cookiefile = tempnam('./temp', 'cookie');
$url = 'http://tqybw.net/beijing/';
$post_data = array(
'loginfield' => 'username',
'username' => 'ybb',
'password' => '123456',
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// 我们在POST数据哦!
curl_setopt($ch, CURLOPT_POST, 1);
// 把post的变量加上
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
//保存cookie文件
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiefile);
$output = curl_exec($ch);
//调试使用
if ($output === FALSE) {
echo "cURL Error: " . curl_error($ch);
}
curl_close($ch);
//进出到发贴页面
$post_url = 'http://tqybw.net/shanghai/';
$ch = curl_init($post_url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//读取cookie 文件
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiefile);
echo $data = curl_exec($ch);
curl_close($ch);
?>
分享到:
相关推荐
本文将深入解析PHP下的cURL用法,以便更好地理解和应用。 1. **初始化cURL会话**: 使用`curl_init()`函数来启动一个新的cURL会话。例如: ```php $curl = curl_init(); ``` 2. **设置cURL选项**: `curl_...
【PHP cURL 详解】 cURL 是一个强大的库,它允许通过 URL 语法进行文件传输,支持多种协议,包括 HTTP、FTP、TELNET 等。PHP 与 cURL 结合,提供了丰富的功能,用于执行复杂的网络操作,如网页抓取、HTTP 请求、...
**PHP_Curl 使用详解** PHP_Curl 是 PHP 中的一个扩展,用于执行 HTTP、FTP、SMTP 等多种协议的网络请求。它通过 cURL 库实现了丰富的功能,包括支持 SSL 证书、POST 数据、PUT 操作、FTP 上传、代理设置、HTTP ...
PHPcURL是一个用于在PHP中实现HTTP和其他协议通信的库,它通过cURL库提供了一个接口,使得开发者能够轻松地处理文件传输、网页抓取、数据提交等多种网络操作。cURL支持众多协议,如FTP、FTPS、HTTP、HTTPS、SCP、...
在PHP中,cURL库是一个强大的工具,用于执行HTTP、FTP、SMTP等协议的请求。cURL库通过`curl_setopt()`函数允许开发者设置各种选项来定制请求行为。...了解并熟练掌握这些参数,能让你在使用PHP的cURL时更加得心应手。
**PHP CURL详解** PHP的CURL库是一种强大的工具,用于在服务器端执行HTTP请求,它支持多种协议,包括HTTP、HTTPS、FTP、FTPS等,是网页抓取、模拟POST和GET请求的重要手段。CURL使得PHP开发者可以方便地与远程...
二、cURL函数详解 1. `curl_init()`: 创建一个cURL会话。 2. `curl_setopt()`: 设置cURL选项,如URL、请求类型、HTTP头、超时时间等。 3. `curl_exec()`: 执行cURL会话,发送请求并获取响应。 4. `curl_getinfo()`: ...
本文将详细讲解PHP中的cURL类及其常用方法,如何封装和使用,以及如何处理登录、获取Cookie、模拟提交数据等任务。 首先,让我们了解什么是cURL。cURL(Client URL Library)是一个库,它提供了在命令行或编程语言...
### PHP cURL 使用实例详解 #### 一、cURL简介 cURL 是一款强大的命令行工具,用于通过URL从或向服务器传输数据。cURL 支持多种协议,包括 FTP、FTPS、HTTP、HTTPS、SCP、SFTP、TFTP、TELNET、DICT、FILE 和 LDAP ...
CURL详解:深入理解PHP中的CURL函数库 CURL,即Client URL Library,是一个用于在各种协议下进行文件传输的命令行工具和库。在PHP中,CURL函数库提供了一组强大的函数,用于执行HTTP和其他网络协议的请求。通过CURL...
### PHP中CURL相关函数详解 #### 一、概述 CURL(Client URL)是PHP中用于处理HTTP请求的强大库之一,它支持多种协议(如HTTP、HTTPS、FTP等),并能够实现各种复杂的网络交互需求。本文将详细介绍PHP中与CURL相关...
$curlPost = "user=" . urlencode($user) . "&pass=" . urlencode($pass); $ch = curl_init("***"); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost); curl_setopt($ch, ...
在本文中,我们将深入探讨如何使用PHP的CURL库来获取邮箱地址。CURL(Client URL Library)是一个强大的工具,可以模拟HTTP请求,包括GET、POST等,常用于页面抓取、模拟登录以及数据采集。以下是一个使用PHP CURL...
在PHP中,`cURL`库提供了一个强大的功能,允许开发者执行HTTP和其他协议的请求,进行数据传输。`curl_setopt`函数是`cURL`库的核心组成部分,它用于设置`cURL`会话的各种选项,以定制网络请求的行为。下面我们将深入...
curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost); // 提交的参数 $data = curl_exec($curl); // 运行cURL curl_close($curl); return $data; } ``` 如果这段代码在运行时返回了bool(false),可能是因为以下...
《PHP cURL 使用详解》 PHP cURL 是一个强大的库,用于在 PHP 中发送网络请求,包括抓取网页内容、模拟HTTP操作等。它使得开发者能够以编程方式获取和交互远程资源,无论这些资源是静态HTML、XML文件,还是动态API...
cURL 还支持其他高级特性,如 SSL 验证、代理设置、cookies 操作、POST 数据提交等。这些功能使得 cURL 成为 PHP 开发中处理网络请求的强大工具,尤其在需要高度控制和定制网络交互的情况下。总之,掌握 cURL 的使用...