昨天我在做一個簡單採集功能時我直接使用了file_get_contents函數,但是採集有些網站沒問題,採集有些網籌碼了,後來分析出現亂碼是伺服器開啟了gzip壓縮功能哦。
我採集的一個頁面,如下gzip
知道原因了我們就好辦了,先百度了一下得出是可以改用curl操作。
curl解決
| 代碼如下 |
複製代碼 |
function curl_get($url, $gzip=false){ $curl = curl_init($url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10); if($gzip) curl_setopt($curl, CURLOPT_ENCODING, "gzip"); // 關鍵在這裡 $content = curl_exec($curl); curl_close($curl); return $content; } |
採用gzip編碼格式
file_get_contents解決:
| 代碼如下 |
複製代碼 |
file_get_contents("compress.zlib://".$url); |
無論頁面是否經過gzip壓縮,上述代碼都可以正常工作!
注意:CURL是需要開啟的哦。
curl安裝:
xp下面的安裝
:修改php.ini檔案的設定,找到
//取消下在的注釋extension=php_curl.dll
linux下面安裝:
| 代碼如下 |
複製代碼 |
# wget http://curl.haxx.se/download/curl-7.17.1.tar.gz # tar zxvf curl-7.17.1.tar.gz //解壓 #cd curl-7.17.1 # ./configure –prefix=/usr/local/curl # make # make install |
這是安裝php之前安裝的方法.
http://www.bkjia.com/PHPjc/632084.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632084.htmlTechArticle昨天我在做一個簡單採集功能時我直接使用了file_get_contents函數,但是採集有些網站沒問題,採集有些網籌碼了,後來分析出現亂碼是伺服器...