摘要:
在這篇文章中主要講解php_curl庫的知識,並教你如何更好的使用php_curl。
簡介你可能在你的編寫php指令碼**中會遇到這樣的問 題:怎麼樣才能從其他站點獲取內容呢?這裡有幾個解決方式;最簡單的就是在php中使用fopen()函式,但是fopen函式沒有足夠的引數來使用,比 如當你想構建乙個「網路爬蟲」,想定義爬蟲的客戶端描述(ie,firefox),通過不同的請求方式來獲取內容,比如post,get;等等這些需求是 不可能用fopen() 函式實現的。
為了解決我們上面提出的問題,我們可以使用php的擴充套件庫-curl,這個擴充套件庫通常是預設在安裝包中的,你可以它來獲取其他站點的內容,也可以來幹別的。
2、linux下的php開啟curl庫支援:
編譯php時在./configure後加上 –with-curl
<?php我們已經成功建立了乙個curl會話,如果需要獲取乙個url的內容,那麼接下的一步,傳遞乙個url給curl_setopt()函式,**:// create a new curl resource
$ch = curl_init();
?>
<?php最後,關閉當前的curl會話// grab url and pass it to the browser
curl_exec($ch);
?>
<?php下面我們來看看完成的例項**://close curl resource, and free up system resources
curl_close($ch);
?>
<?php
<?php在上面的2個例項中,你可能注意到通過設定函式curl_setopt() 的不同引數,可以獲得不同結果,這正是curl強大的原因,下面我們來看看這些引數的含義。
如果你看過php手冊中的curl_setopt()函式,你可以注意到了,它下面長長的引數列表,我們不可能一一介紹,更多的內容請檢視php手冊,這裡只介紹常用的和有的一些引數。
第乙個很有意思的引數是curlopt_followlocation,當你把這個引數設定為true時,curl會根據任何重定向命令更深層次的獲取轉向路徑,舉個例子:當你嘗試獲取乙個php的頁面,然後這個php的頁 麵中有一段跳轉** <?php header(」location:http://new_url」);….?>,curl將從http://new_url獲取內容,而不是返回 跳轉**。完整的**如下:
<?php下一步介紹的引數是curlopt_post,這是乙個非常有用的功能,因為它可以讓您這樣做post請求,而不是get請求,這實際上意味著你可以提交
其他形式的頁面,無須其實在表單中填入。下面的例子表明我的意思:
and the handle_form.php file:
<?phpecho 『』;
echo 『
』;』;print_r ($_post);
echo 『
?>
(view live demo)
現在我們把最有意思的乙個引數都介紹過了,下面我們來介紹乙個curl_getinfo() 函式,看看它能為我們做些什麼。
獲取頁面的資訊:
(view live demo )
大部分返回的資訊是請求本身的,像:這個請求花的時間,返回的標頭檔案資訊,當然也有一些頁面的資訊,像頁面內容的大小,最後修改的時間。
那些全是關於curl_getinfo()函式的,現在讓我們看看它的實際用途。
實際用途:
curl庫的第一用途可以檢視乙個url頁面是否存在,我們可以通過檢視這個url的請求返回的**來判斷比如404代表這個頁面不存在,我們來看一些例子:
(view live demo )
其他的使用者可能是建立乙個自動檢查器,驗證每個請求的頁面是否存在。
我們可以用curl庫來寫和google類似的網頁蜘蛛(web spider),或是其他的網頁蜘蛛。這篇文章不是關於如何寫乙個網頁蜘蛛的,因此所以我們沒有講任何關於網頁蜘蛛的細節問題,但是以後在phpit 將會介紹用 curl來構造乙個web spider.
結論:
在這篇文章我已經表明,如何使用php中的curl庫和其大部分的選項。
為最基本的任務,只想獲得乙個網頁,你可能不會需要curl庫,但是,一旦你想要做任何事情稍微先進的,您可能會想要使用curl庫。
在近未來,我會告訴您究竟如何建立自己的網路蜘蛛,類似google的網路蜘蛛,敬請期待,以phpit。
curl在Android中使用的Demo
在android原始碼環境下編譯出curl.a靜態庫後可以放到jni下直接使用了。要注意的是,在android.mk中需要這樣將靜態庫編譯到jni的動態庫中。local path call my dir 使用靜態庫 include clear vars local module curl local...
php中使用CURL之php curl詳解
curl是個什麼東西?簡單地說就是,curl是乙個庫,能讓你通過url和許多不同種的伺服器進行勾搭 搭訕和深入交流,並且還支援許多協議。並且人家還說了curl可以支援https認證 http post ftp上傳 cookies 簡單口令認證等等功能啦。說了那麼多其實沒什麼感覺吧,在應用中才有感覺,...
在php中使用Sphinx
要使用php連線sphinx進行全文搜尋,有兩種方式 將sphinx作為php擴充套件安裝,這種方式比較麻煩,此處不介紹 在sphinx原始碼目錄下的有個api sphinxapi.php,將此檔案reqire到你的php中,即可呼叫api方法進行全文搜尋 require sphinxapi.php...