读书人

PHP施用cURL代理

发布时间: 2012-10-31 14:37:31 作者: rapoo

PHP使用cURL代理
使用PHP 的cURL 可以和有效地去抓。你只需要行一本,然後分析一下你所抓取的,然後就可以以程序的方式得到你想要的了。是你想一接上取部分,或是取一XML 文件把其入,那怕就是的取容,cURL 是一功能大的PHP 。本文主要述如果使用PHP 。

用 cURL 置

首先,我得先要定我的PHP 是否了,你可以通使用php_info() 函得到一信息。
Php代

?php
phpinfo();
?

如果你可以在上看到下面的出,那麽表示cURL 已被。

如果你看到的,那麽你需要置你的PHP 。如果你是在Windows 平下,那麽非常,你需要改一改你的php.ini 文件的置,找到php_curl.dll ,取消前面的分就行了。如下所示:
Php代

//取消下在的
extension=php_curl.dll



如果你是在Linux 下面,那麽,你需要重新你的PHP 了,,你需要打—— 在configure 命令上加上“with-curl” 。

一小示例

如果一切就,下面是一小例程:
Php代

?php
// 初始化一 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代

?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 的。

於代理服器

下面是一如何使用代理服器的示例。意其中高亮的代,代很,我就不用多了。
Php代

?php
$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);
?





於SSL 和Cookie

於SSL 也就是HTTPS ,你只需要把CURLOPT_URL 接中的http:// 成https:// 就可以了。然,有一叫CURLOPT_SSL_VERIFYHOST 可以置站。

於Cookie ,你需要了解下面三:

CURLOPT_COOKIE ,在面的中置一cookie

CURLOPT_COOKIEJAR ,束的候保存一Cookie

CURLOPT_COOKIEFILE ,Cookie 的文件。

HTTP 服器

最後,我看一看HTTP 服器的情。
Php代

?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关于http可以做三件事:
1,直接抓取某个地址的网页。
2,向某个地址post数据。
3,经过代理访问某个网页。也可以post。
其他,还有https和cookie。


於其它更多的容,看相的cURL 手。

读书人网 >PHP

热点推荐