使用php的curl庫可以簡單和有效地去抓網頁。你只需要執行乙個指令碼,然後分析一下你所抓取的網頁,然後就可以以程式的方式得到你想要的資料了。無論 是你想從從乙個鏈結上取部分資料,或是取乙個xml檔案並把其匯入資料庫,那怕就是簡單的獲取網頁內容,curl 是乙個功能強大的php庫。本文主要講述如果使用這個php庫。
啟用 curl 設定
首先,我們得先要確定我們的php是否開啟了這個庫,你可以通過使用php_info()函式來得到這一資訊。
<?php如果你可以在網頁上看到下面的輸出,那麼表示curl庫已被開啟。phpinfo
();?>
如果你沒看到的話,那麼你需要設定你的php並開啟這個庫。
如果你是在windows平台下,那麼非常簡單,你需要改一改你的php.ini檔案的設定,找到php_curl.dll,並取消前面的分號注釋就行了。如下所示:
//如果你是在linux下面,那麼,你需要重新編譯你的php了,編輯時,你需要開啟編譯引數——在configure命令上加上「–with-curl」 引數。取消下在的注釋
extension=php_curl.dll
乙個小示例
<?php如何post資料上面是抓取網頁的**,下面則是向某個網頁post資料。//初始化乙個 curl 物件
$curl =curl_init(); //
設定你需要抓取的url
curl_setopt($curl, curlopt_url, ''); //
設定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);
假設我們有乙個處理表單的**其可以接受兩個表單域,乙個是**號碼,乙個是簡訊內容。
<?php從上面的程式我們可以看到,使用curlopt_post設定http協議的post方法,而不是get方法,然後以curlopt_postfields設定post的資料。$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, '');
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);
?>
關於**伺服器
下面是乙個如何使用**伺服器的示例。請注意其中高亮的**,**很簡單,我就不用多說了。
<?php關於ssl和cookie關於ssl也就是https協議,你只需要把curlopt_url連線中的http://變成https://就可以了。當然,還有乙個引數叫curlopt_ssl_verifyhost可以設定為驗證站點。
關於cookie,你需要了解下面三個引數:
http伺服器認證
最後,我們來看一看http伺服器認證的情況。
ZH乳酪 PHP安裝擴充套件imagick
明明幾個簡單命令就能搞定,但是按照網上的方法就是不行,弄了一天,最後發現只需要兩行命令,而且不需要修改什麼php.ini sudo apt get install php5 imagick sudo service apache2 reload 網上的其他方法 sudo apt get update...
ZH乳酪 PHP抓取網頁方法總結
from 在做一些天氣預報或者rss訂閱的程式時,往往需要抓取非本地檔案,一般情況下都是利用php模擬瀏覽器的訪問,通過http請求訪問url位址,然後得到html源 或者xml資料。1.file 函式 2.file get contents 函式 4.curl方式 5.fsockopen 函式 s...
ZH乳酪 JavaScript清空陣列的三種方法
方式1,length賦值為0 目前 prototype中陣列的 clear 方法和mootools庫中陣列的 empty 方法使用這種方式清空陣列。1 var ary 1,2,3,4 2 ary.length 0 3 console.log ary 輸出 空陣列,即被清空了 方式2,賦值為 ext庫...