抓取遠程內容,之前一直都在用file_get_content函數,其實早就知道有curl這么一個好東西的存在,但是看了一眼后感覺使用頗有些復雜,沒有file_get_content那么簡單,再就是需求也不大,所以沒有學習使用curl.
直到最近,要做一個網頁小偷程序的時候才發現file_get_content已經完全不能滿足需求了,我覺得,在讀取遠程內容的時候,file_get_content除了使用比curl便捷以外,其他都沒有curl好.
php中curl和file_get_content的一些比較.
主要區別:
學習才發現,curl支持很多協議,有FTP,FTPS,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE以及LDAP,也就是說,它能做到很多file_get_content做不到的事情,curl在php可以實現遠程獲取和采集內容,實現PHP網頁版的FTP上傳下載,實現模擬登陸,實現接口對接(API),數據傳輸,實現模擬Cookie,下載文件斷點續傳等等,功能十分強大.
了解curl一些基本的使用后,才發現其實并不難,只不過記住里面一些設置參數,難弄一點,但是我們記住幾個常用的就可以了.
開啟curl:
因為PHP默認是不支持curl功能的,因此如果要用curl的話,首先需要在php.ini中開啟該功能,即去掉 ;extension= php_curl.dll 前面的分號,然后保存后重啟apache/iis就好了.
PHP實例如下:
- $my_curl = curl_init(); //初始化一個curl對象
- curl_setopt($my_curl, CURLOPT_URL,"http://www.Vevb.cin");//設置你需要抓取的URL
- curl_setopt($my_curl,CURLOPT_RETURNTRANSFER,1); //設置是將結果保存到字符串中還是輸出到屏幕上,1表示將結果保存到字符串
- $str = curl_exec($curl); //執行請求
- echo $str; //輸出抓取的結果
- curl_close($curl); //關閉url請求
新聞熱點
疑難解答