`
lenxen
  • 浏览: 31136 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

php CURL post 用法详解

阅读更多

 

1、什么是cURL

cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。最爽的是,PHP也支持 cURL 库。本文将介绍 cURL 的一些高级特性,以及在PHP中如何运用它。

2.为什么要用 喜欢用cURL?

是的,我们可以通过其他办法获取网页内容。大多数时候,我因为想偷懒,都直接用简单的PHP函数:

不过,这种做法缺乏灵活性和有效的错误处理。而且,你也不能用它完成一些高难度任务——比如处理coockies、验证、表单提交、文件上传等等。

引用:
cURL 是一种功能强大的库,支持很多不同的协议、选项,能提供 URL 请求相关的各种细节信息。

3.CURL基本结构

在学习更为复杂的功能之前,先来看一下在PHP中建立cURL请求的基本步骤:

初始化

设置变量

执行并获取结果

释放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用法详解

    本文将深入解析PHP下的cURL用法,以便更好地理解和应用。 1. **初始化cURL会话**: 使用`curl_init()`函数来启动一个新的cURL会话。例如: ```php $curl = curl_init(); ``` 2. **设置cURL选项**: `curl_...

    PHP_Curl使用详解.doc

    **PHP_Curl 使用详解** PHP_Curl 是 PHP 中的一个扩展,用于执行 HTTP、FTP、SMTP 等多种协议的网络请求。它通过 cURL 库实现了丰富的功能,包括支持 SSL 证书、POST 数据、PUT 操作、FTP 上传、代理设置、HTTP ...

    PHPCurl使用详解.doc

    PHPcURL是一个用于在PHP中实现HTTP和其他协议通信的库,它通过cURL库提供了一个接口,使得开发者能够轻松地处理文件传输、网页抓取、数据提交等多种网络操作。cURL支持众多协议,如FTP、FTPS、HTTP、HTTPS、SCP、...

    PHP中的curl使用参数详解

    在PHP中,cURL库是一个强大的工具,用于执行HTTP、FTP、SMTP等协议的请求。cURL库通过`curl_setopt()`函数允许开发者设置各种选项来定制请求行为。...了解并熟练掌握这些参数,能让你在使用PHP的cURL时更加得心应手。

    PHP CURL详解

    **PHP CURL详解** PHP的CURL库是一种强大的工具,用于在服务器端执行HTTP请求,它支持多种协议,包括HTTP、HTTPS、FTP、FTPS等,是网页抓取、模拟POST和GET请求的重要手段。CURL使得PHP开发者可以方便地与远程...

    php 的curl详解

    二、cURL函数详解 1. `curl_init()`: 创建一个cURL会话。 2. `curl_setopt()`: 设置cURL选项,如URL、请求类型、HTTP头、超时时间等。 3. `curl_exec()`: 执行cURL会话,发送请求并获取响应。 4. `curl_getinfo()`: ...

    php中curl类常用方法封装和详解

    本文将详细讲解PHP中的cURL类及其常用方法,如何封装和使用,以及如何处理登录、获取Cookie、模拟提交数据等任务。 首先,让我们了解什么是cURL。cURL(Client URL Library)是一个库,它提供了在命令行或编程语言...

    CURL详解 资料.doc

    CURL详解:深入理解PHP中的CURL函数库 CURL,即Client URL Library,是一个用于在各种协议下进行文件传输的命令行工具和库。在PHP中,CURL函数库提供了一组强大的函数,用于执行HTTP和其他网络协议的请求。通过CURL...

    PHP 中CURL相关涵数详解

    ### PHP中CURL相关函数详解 #### 一、概述 CURL(Client URL)是PHP中用于处理HTTP请求的强大库之一,它支持多种协议(如HTTP、HTTPS、FTP等),并能够实现各种复杂的网络交互需求。本文将详细介绍PHP中与CURL相关...

    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获取邮箱地址的详解

    在本文中,我们将深入探讨如何使用PHP的CURL库来获取邮箱地址。CURL(Client URL Library)是一个强大的工具,可以模拟HTTP请求,包括GET、POST等,常用于页面抓取、模拟登录以及数据采集。以下是一个使用PHP CURL...

    深入PHP curl参数的详解

    在PHP中,`cURL`库提供了一个强大的功能,允许开发者执行HTTP和其他协议的请求,进行数据传输。`curl_setopt`函数是`cURL`库的核心组成部分,它用于设置`cURL`会话的各种选项,以定制网络请求的行为。下面我们将深入...

    详解php中curl返回false的解决办法

    curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost); // 提交的参数 $data = curl_exec($curl); // 运行cURL curl_close($curl); return $data; } ``` 如果这段代码在运行时返回了bool(false),可能是因为以下...

    curl手册 用curl的

    《PHP cURL 使用详解》 PHP cURL 是一个强大的库,用于在 PHP 中发送网络请求,包括抓取网页内容、模拟HTTP操作等。它使得开发者能够以编程方式获取和交互远程资源,无论这些资源是静态HTML、XML文件,还是动态API...

    curl详解【word】

    cURL 还支持其他高级特性,如 SSL 验证、代理设置、cookies 操作、POST 数据提交等。这些功能使得 cURL 成为 PHP 开发中处理网络请求的强大工具,尤其在需要高度控制和定制网络交互的情况下。总之,掌握 cURL 的使用...

Global site tag (gtag.js) - Google Analytics