`

curl使用介绍2

    博客分类:
  • PHP
阅读更多

原帖:http://www.uican.com.cn/html/2010/516.html

 

使用PHP的cURL库可以简单和有效地去抓网页。你只需要运行一个脚本,然后分析一下你所抓取的网页,然后就可以以程序的方式得到你想要的数据了。无论是你想从从一个链接上取部分数据,或是取一个XML文件并把其导入数据库,那怕就是简单的获取网页内容,cURL 是一个功能强大的PHP库。本文主要讲述如果使用这个PHP库。

启用 cURL 设置

首先,我们得先要确定我们的PHP是否开启了这个库,你可以通过使用php_info()函数来得到这一信息。
<!--p<br-->phpinfo();
?>

如果你可以在网页上看到下面的输出,那么表示cURL库已被开启。

如果你看到的话,那么你需要设置你的PHP并开启这个库。如果你是在Windows平台下,那么非常简单,你需要改一改你的php.ini文件的设置,找到php_curl.dll,并取消前面的分号注释就行了。如下所示:
//取消下在的注释
extension=php_curl.dll

如果你是在Linux下面,那么,你需要重新编译你的PHP了,编辑时,你需要打开编译参数——在configure命令上加上“–with-curl” 参数。

一个小示例

如果一切就绪,下面是一个小例程:

 

// 初始化一个 cURL 对象
$curl = curl_init();

// 设置你需要抓取的URL
curl_setopt($curl, CURLOPT_URL, ‘http://cocre.com’);

// 设置header
curl_setopt($curl, CURLOPT_HEADER, 1);

// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

// 运行cURL,请求网页
$data = curl_exec($curl);

// 关闭URL请求
curl_close($curl);

// 显示获得的数据
var_dump($data);

 

 

如何POST数据

上面是抓取网页的代码,下面则是向某个网页POST数据。假设我们有一个处理表单的网址http://www.example.com/sendSMS.php,其可以接受两个表单域,一个是电话号码,一个是短信内容。

 

<?php
$phoneNumber = ‘13912345678′;
$message = ‘This message was generated by curl and php’;
$curlPost = ‘pNUMBER=’ . urlencode($phoneNumber) . ‘&MESSAGE=’ . urlencode($message) . ‘&SUBMIT=Send’;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, ‘http://www.example.com/sendSMS.php’);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
$data = curl_exec();curl_close($ch);
?>

 

 

从上面的程序我们可以看到,使用CURLOPT_POST设置HTTP协议的POST方法,而不是GET方法,然后以CURLOPT_POSTFIELDS设置POST的数据。

关于代理服务器

下面是一个如何使用代理服务器的示例。请注意其中高亮的代码,代码很简单,我就不用多说了。
<!--p<br-->$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, ‘http://www.example.com’);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($ch, CURLOPT_PROXY, ‘fakeproxy.com:1080′);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, ‘user:password’);
$data = curl_exec();curl_close($ch);
?>[/php]

关于SSL和Cookie

关于SSL也就是HTTPS协议,你只需要把CURLOPT_URL连接中的http://变成https://就可以了。当然,还有一个参数叫CURLOPT_SSL_VERIFYHOST可以设置为验证站点。

关于Cookie,你需要了解下面三个参数:

CURLOPT_COOKIE,在当面的会话中设置一个cookie

CURLOPT_COOKIEJAR,当会话结束的时候保存一个Cookie

CURLOPT_COOKIEFILE,Cookie的文件。

HTTP服务器认证

最后,我们来看一看HTTP服务器认证的情况。

 

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, ‘http://www.example.com’);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt(CURLOPT_USERPWD, ‘[username]:[password]‘)

$data = curl_exec();
curl_close($ch);
?>

 

分享到:
评论

相关推荐

    curl c++使用

    本篇将详细介绍如何在C++项目中集成和使用`curl`库进行网络请求。 【描述】:“仅供自己备份使用。curl c++ 使用实例,项目中使用,没有改动直接贴过来。curl https访问,curl-7.60.0源码版本” 这个描述表明我们...

    Qt工程中使用curl进行网络请求,最小程序

    2. **编译curl库**:对于Windows环境,使用mingw32-make.exe来编译源码。确保配置好编译器和必要的依赖,例如OpenSSL和zlib。编译完成后,你会得到一个.lib文件(静态库)或.dll文件(动态库)。 3. **新建Qt工程**...

    curl使用方法及命令的介绍

    **curl使用方法及命令介绍** `curl`是一个强大的命令行工具,用于传输数据到或从服务器,支持HTTP、HTTPS、FTP、FTPS等多种协议。它广泛应用于自动化脚本、数据抓取、API交互等场景。以下是对`curl`的一些基本使用...

    使用curl-config配置选项

    下面是对 curl-config 的详细介绍: curl-config 的使用 curl-config 可以使用多种选项来显示不同的信息。这些选项包括: * `--ca`:显示 libcurl 使用的内置 CA 证书束路径。 * `--cc`:显示用于构建 libcurl 的...

    curl在Android中使用的Demo

    文章可能还会介绍如何解析`curl`命令输出的信息,以便在Android应用中复制网络请求的逻辑。这通常涉及到分析请求方法(GET、POST等)、URL、请求头以及POST数据。 `CurlTest`这个文件名可能是项目中的一个测试类,...

    curl使用手册

    本手册将详细介绍PHP中cURL的使用方法,包括基本概念、配置选项、常见用法以及实例解析。 ### 1. 安装与配置 在开始使用PHP cURL之前,确保已正确安装并启用cURL扩展。在Linux系统中,通常可以通过运行`php -m`...

    curl手册 用curl的

    本文将详细介绍如何在 PHP 中使用 cURL。 首先,确保你的 PHP 环境已经启用了 cURL 扩展。可以通过运行 `php_info()` 函数查看 cURL 是否已启用。在 Windows 上,如果未启用,只需在 `php.ini` 文件中取消 `...

    Centos环境下安装curl

    本文将详细介绍如何在Centos环境中安装curl,并确保PHP能够使用curl功能。 ##### 1. 安装curl库 首先需要确保系统中已经安装了curl库,这通常可以通过包管理器来完成。在Centos系统中,可以使用`yum`命令进行安装...

    使用CURL抓取网页数据

    总结,本教程介绍了如何使用CURL库在C++中抓取网页数据,并使用STL字符串进行分析。通过`curl_easy_setopt`配置请求参数,`curl_easy_perform`执行请求,然后在回调函数中处理接收到的数据。最后,我们将提取的数据...

    cURL的windows版本,带中文说明

    本文将详细介绍cURL的Windows版本,以及如何使用附带的中英文说明。 ### 安装与运行 在Windows环境下,cURL通常以可执行文件`curl.exe`的形式提供。你可以直接解压提供的压缩包,将`curl.exe`放在系统的PATH环境...

    使用VC6编译-Curl和LibCurl+ssl+ssh2+zlib

    使用VC6编译-Curl和LibCurl+ssl+ssh2+zlib libcurl是一个跨平台的开源网络协议库,支持http, https, rtsp等多种协议 。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传, HTTP基本表单上传,代理,...

    php_curl_使用实例

    下面详细介绍几个常用的 cURL 函数及其参数: - **`curl_init()`**:初始化 cURL 会话。该函数返回一个 cURL 句柄,用于后续的 cURL 函数调用。 - **`curl_setopt()`**:为 cURL 会话设置选项。接受三个参数: - `...

    简单使用curl进行get请求并将服务器返回存进本地文件

    本文将详细介绍如何使用`curl`进行简单的GET请求,并将服务器的响应内容保存到本地文件。 首先,我们需要理解GET请求是HTTP协议中最基础的一种请求方法,它用于从服务器获取资源。在`curl`命令中执行GET请求非常...

    windows下Curl+Openssl访问https实例

    本文将详细介绍如何在Windows下利用Curl和OpenSSL库实现HTTPS访问,并提供一个实例来帮助理解这一过程。 Curl是一个强大的命令行工具和库,用于传输数据,支持多种协议,包括HTTP、HTTPS、FTP等。它提供了丰富的...

    windows下的CURL上传下载图片

    本教程将详细介绍如何在Windows上使用C++和CURL库来实现图片的上传与下载。 首先,你需要下载并安装CURL库。CURL库提供了多种编程语言的接口,包括C++,可以在其官方网站找到最新版本的源码包。安装过程中,确保...

    everything-curl linux命令curl的用法 英文版

    英文版》和描述《curl命令可用来下载文件,或者模拟http请求,而且支持非常多的协议,这是一篇非常全面的说明,英文文字版》透露了本文所涉及的核心内容是关于Linux环境下curl命令的使用说明。curl是一个功能丰富的...

    ESP32_curl_example-master.zip_ESP32 CURL_curl esp32_esp32 cmake_

    5. `README.md`:项目说明文档,通常会介绍如何编译、运行示例代码以及可能遇到的问题和解决方案。 6. `.gitignore`:定义了版本控制系统Git应该忽略的文件类型。 为了成功地在ESP32上运行这个例子,你需要按照...

    curl工具支持XP.zip

    本文将详细介绍`curl`工具在XP系统上的使用方法、功能以及一些常见问题的解决策略。 首先,`curl.exe`是`curl`工具的可执行文件,用户可以在命令行中调用它来执行网络操作。为了在XP系统上使用`curl`,你需要将`...

    OpenStack之Curl使用

    综上所述,本篇文档主要介绍了如何使用curl工具来操作OpenStack的keystone API,涵盖了从基础的API调用到具体的业务和管理API测试,以及如何使用curl进行API调试和Swift ReST API操作的相关知识。掌握这些知识点,...

Global site tag (gtag.js) - Google Analytics