抓取遠(yuǎn)程內(nèi)容,之前一直都在用file_get_content函數(shù),其實早就知道有curl這么一個好東西的存在,但是看了一眼后感覺使用頗有些復(fù)雜,沒有file_get_content那么簡單,再就是需求也不大,所以沒有學(xué)習(xí)使用curl.
直到最近,要做一個網(wǎng)頁小偷程序的時候才發(fā)現(xiàn)file_get_content已經(jīng)完全不能滿足需求了,我覺得,在讀取遠(yuǎn)程內(nèi)容的時候,file_get_content除了使用比curl便捷以外,其他都沒有curl好.
php中curl和file_get_content的一些比較.
主要區(qū)別:
學(xué)習(xí)才發(fā)現(xiàn),curl支持很多協(xié)議,有FTP,FTPS,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE以及LDAP,也就是說,它能做到很多file_get_content做不到的事情,curl在php可以實現(xiàn)遠(yuǎn)程獲取和采集內(nèi)容,實現(xiàn)PHP網(wǎng)頁版的FTP上傳下載,實現(xiàn)模擬登陸,實現(xiàn)接口對接(API),數(shù)據(jù)傳輸,實現(xiàn)模擬Cookie,下載文件斷點(diǎn)續(xù)傳等等,功能十分強(qiáng)大.
了解curl一些基本的使用后,才發(fā)現(xiàn)其實并不難,只不過記住里面一些設(shè)置參數(shù),難弄一點(diǎn),但是我們記住幾個常用的就可以了.
開啟curl:
因為PHP默認(rèn)是不支持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");//設(shè)置你需要抓取的URL
- curl_setopt($my_curl,CURLOPT_RETURNTRANSFER,1); //設(shè)置是將結(jié)果保存到字符串中還是輸出到屏幕上,1表示將結(jié)果保存到字符串
- $str = curl_exec($curl); //執(zhí)行請求
- echo $str; //輸出抓取的結(jié)果
- curl_close($curl); //關(guān)閉url請求
新聞熱點(diǎn)
疑難解答