PHP cURL的詳細使用手冊
在PHP語言中,有許多東西值得我們?nèi)ド钊氲奶接憽O旅嫖覀儗榇蠹以敿毥榻B有關(guān)PHP cURL的使用方法,希望對大家有所幫助。#t#
使用PHP cURL可以簡單和有效地去抓網(wǎng)頁。你只需要運行一個腳本,然后分析一下你所抓取的網(wǎng)頁,然后就可以以程序的方式得到你想要的數(shù)據(jù)了。無論是你想從從一個鏈接上取部分數(shù)據(jù),或是取一個XML文件并把其導(dǎo)入數(shù)據(jù)庫,那怕就是簡單的獲取網(wǎng)頁內(nèi)容,PHP cURL是一個功能強大的PHP庫。本文主要講述如果使用這個PHP庫。
啟用PHP cURL設(shè)置
首先,我們得先要確定我們的PHP是否開啟了這個庫,你可以通過使用php_info()函數(shù)來得到這一信息。
﹤?phpphpinfo();?﹥
如果你可以在網(wǎng)頁上看到下面的輸出,那么表示PHP cURL庫已被開啟。
如果你看到的話,那么你需要設(shè)置你的PHP并開啟這個庫。如果你是在Windows平臺下,那么非常簡單,你需要改一改你的php.ini文件的設(shè)置,找到php_curl.dll,并取消前面的分號注釋就行了。如下所示:
//取消下在的注釋extension=php_curl.dll
如果你是在Linux下面,那么,你需要重新編譯你的PHP了,編輯時,你需要打開編譯參數(shù)——在configure命令上加上“–with-curl” 參數(shù)。
一個小示例
如果一切就緒,下面是一個小例程:
﹤?php
// 初始化一個PHP cURL對象
$curl = curl_init();
// 設(shè)置你需要抓取的URL
curl_setopt($curl, CURLOPT_URL, 'http://cocre.com');
// 設(shè)置header
curl_setopt($curl, CURLOPT_HEADER, 1);
// 設(shè)置PHP cURL參數(shù),要求結(jié)果保存到字符串中還是輸出到屏幕上。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// 運行cURL,請求網(wǎng)頁
$data = curl_exec($curl);
// 關(guān)閉URL請求
curl_close($curl);
// 顯示獲得的數(shù)據(jù)
var_dump($data);
如何POST數(shù)據(jù)
上面是抓取網(wǎng)頁的代碼,下面則是向某個網(wǎng)頁POST數(shù)據(jù)。假設(shè)我們有一個處理表單的網(wǎng)址http://www.example.com/sendSMS.php,其可以接受兩個表單域,一個是電話號碼,一個是短信內(nèi)容。
- ﹤ ?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設(shè)置HTTP協(xié)議的POST方法,而不是GET方法,然后以CURLOPT_POSTFIELDS設(shè)置POST的數(shù)據(jù)。
關(guān)于代理服務(wù)器
下面是一個如何使用代理服務(wù)器的示例。請注意其中高亮的代碼,代碼很簡單,我就不用多說了。
- ﹤ ?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);
- ?﹥
關(guān)于其它更多的內(nèi)容,請參看相關(guān)的PHP cURL手冊。