PHP中使用file_get_contents抓取網(wǎng)頁中文亂碼問題解決方法
本文實(shí)例講述了PHP中使用file_get_contents抓取網(wǎng)頁中文亂碼問題解決方法。分享給大家供大家參考。具體方法如下:
file_get_contents函數(shù)本來就是一個(gè)非常優(yōu)秀的php自帶本地與遠(yuǎn)程文件操作函數(shù),它可以讓我們不花吹揮之力把遠(yuǎn)程數(shù)據(jù)直接下載,但我在使用它讀取網(wǎng)頁時(shí)會(huì)碰到有些頁面是亂碼了,這里就來給各位總結(jié)具體的解決辦法.
根據(jù)網(wǎng)上有朋友介紹說原因可能是服務(wù)器開了GZIP壓縮,下面是用firebug查看我的網(wǎng)站的頭信息,Gzip是開了的,請求頭信息原始頭信息,代碼如下:
Accept-Encoding gzip, deflate
Accept-Language zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Connection keep-alive
Cookie __utma=225240837.787252530.1317310581.1335406161.1335411401.1537; __utmz=225240837.1326850415.887.3.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=%E4%BB%BB%E4%BD%95%E9%A1%B9%E7%9B%AE%E9%83%BD%E4%B8%8D%E4%BC%9A%E9%82%A3%E4%B9%88%E7%AE%80%E5%8D%95%20site%3Awww.nowamagic.net; PHPSESSID=888mj4425p8s0m7s0frre3ovc7; __utmc=225240837; __utmb=225240837.1.10.1335411401
Host www.dbjr.com.cn
User-Agent Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0
可以從header信息中找到 Content-Encoding 項(xiàng)是 Gzip.
解決辦法比較簡單,就是用 curl 代替 file_get_contents 去獲取,然后在 curl 配置參數(shù)中加一條,代碼如下:
今天用 file_get_contents 抓圖片的時(shí)候,開始沒發(fā)現(xiàn)這個(gè)問題,廢了老大勁才找出來.
使用自帶的zlib庫,如果服務(wù)器已經(jīng)裝了zlib庫,用下面的代碼可以輕易解決亂碼問題,代碼如下:
希望本文所述對大家的PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
PHP基于PDO擴(kuò)展操作mysql數(shù)據(jù)庫示例
這篇文章主要介紹了PHP基于PDO擴(kuò)展操作mysql數(shù)據(jù)庫,結(jié)合實(shí)例形式分析了php使用pdo擴(kuò)展針對mysql數(shù)據(jù)庫的查詢、插入、修改等操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-12-12smarty內(nèi)置函數(shù){loteral}、{ldelim}和{rdelim}用法實(shí)例
這篇文章主要介紹了smarty內(nèi)置函數(shù){loteral}、{ldelim}和{rdelim}用法,實(shí)例分析了{(lán)loteral}、{ldelim}和{rdelim}的功能及使用技巧,需要的朋友可以參考下2015-01-01php基礎(chǔ)知識:類與對象(4) 范圍解析操作符(::)
php基礎(chǔ)知識:類與對象(4) 范圍解析操作符(::)...2006-12-12利用php實(shí)現(xiàn)禁用IE和火狐的緩存問題
利用php實(shí)現(xiàn)禁用IE和火狐的緩存問題,在網(wǎng)速找了好多方法,最終還是解決了,需要了解的朋友可以參考下2012-12-12PHP使用Http Post請求發(fā)送Json對象數(shù)據(jù)代碼解析
這篇文章主要介紹了PHP使用Http Post請求發(fā)送Json對象數(shù)據(jù)代碼解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07使用PHPMYADMIN操作mysql數(shù)據(jù)庫添加新用戶和數(shù)據(jù)庫的方法
在Mysql中創(chuàng)建多用戶,為了讓每個(gè)用戶在使用phpmyadmin管理數(shù)據(jù)庫時(shí),只能看到自己同名的數(shù)據(jù)庫,所以在設(shè)置用戶權(quán)限時(shí)要特別注意!可以參考以下步驟設(shè)置用戶權(quán)限。2010-04-04