PHP中使用file_get_contents抓取網(wǎng)頁(yè)中文亂碼問(wèn)題解決方法
本文實(shí)例講述了PHP中使用file_get_contents抓取網(wǎng)頁(yè)中文亂碼問(wèn)題解決方法。分享給大家供大家參考。具體方法如下:
file_get_contents函數(shù)本來(lái)就是一個(gè)非常優(yōu)秀的php自帶本地與遠(yuǎn)程文件操作函數(shù),它可以讓我們不花吹揮之力把遠(yuǎn)程數(shù)據(jù)直接下載,但我在使用它讀取網(wǎng)頁(yè)時(shí)會(huì)碰到有些頁(yè)面是亂碼了,這里就來(lái)給各位總結(jié)具體的解決辦法.
根據(jù)網(wǎng)上有朋友介紹說(shuō)原因可能是服務(wù)器開了GZIP壓縮,下面是用firebug查看我的網(wǎng)站的頭信息,Gzip是開了的,請(qǐng)求頭信息原始頭信息,代碼如下:
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.fzitv.net
User-Agent Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0
可以從header信息中找到 Content-Encoding 項(xiàng)是 Gzip.
解決辦法比較簡(jiǎn)單,就是用 curl 代替 file_get_contents 去獲取,然后在 curl 配置參數(shù)中加一條,代碼如下:
今天用 file_get_contents 抓圖片的時(shí)候,開始沒(méi)發(fā)現(xiàn)這個(gè)問(wèn)題,廢了老大勁才找出來(lái).
使用自帶的zlib庫(kù),如果服務(wù)器已經(jīng)裝了zlib庫(kù),用下面的代碼可以輕易解決亂碼問(wèn)題,代碼如下:
希望本文所述對(duì)大家的PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
PHP基于DateTime類解決Unix時(shí)間戳與日期互轉(zhuǎn)問(wèn)題【針對(duì)1970年前及2038年后時(shí)間戳】
這篇文章主要介紹了PHP基于DateTime類解決Unix時(shí)間戳與日期互轉(zhuǎn)問(wèn)題,通過(guò)DateTime類解決1970年前及2038年后時(shí)間戳顯示與計(jì)算問(wèn)題,非常簡(jiǎn)單實(shí)用,代碼中備有較為詳盡的注釋便于理解,需要的朋友可以參考下2018-06-06
簡(jiǎn)單的方法讓你的后臺(tái)登錄更加安全(php中加session驗(yàn)證)
通過(guò)特定文件為后臺(tái)入口注冊(cè)session,否則失敗退出。即直接使用原后臺(tái)地址將無(wú)法登錄后臺(tái)。這樣一來(lái),入口文件名的多樣性、可變更性將為你的后臺(tái)登錄提供更加安全的環(huán)境2012-08-08
使用PHP實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)可視化功能的示例詳解
實(shí)時(shí)數(shù)據(jù)可視化功能,是指在Web應(yīng)用程序開發(fā)中,將服務(wù)器發(fā)送的實(shí)時(shí)數(shù)據(jù),本文將介紹如何使用PHP和前端框架實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)可視化功能,需要的可以參考一下2023-07-07
在Windows系統(tǒng)下使用PHP生成Word文檔的教程
這篇文章主要介紹了在Windows系統(tǒng)下使用PHP生成Word文檔的教程,要學(xué)習(xí)PHP的同學(xué)可以通過(guò)這樣的方式來(lái)練練手^^需要的朋友可以參考下2015-07-07
PHP使用curl_multi_select解決curl_multi網(wǎng)頁(yè)假死問(wèn)題的方法
這篇文章主要介紹了PHP使用curl_multi_select解決curl_multi網(wǎng)頁(yè)假死問(wèn)題的方法,結(jié)合實(shí)例形式分析了使用curl_multi的過(guò)程中并發(fā)處理事務(wù)導(dǎo)致cpu占用率過(guò)高時(shí)的解決方法,需要的朋友可以參考下2018-08-08
php實(shí)現(xiàn)通過(guò)stomp協(xié)議連接ActiveMQ操作示例
這篇文章主要介紹了php實(shí)現(xiàn)通過(guò)stomp協(xié)議連接ActiveMQ操作,結(jié)合實(shí)例形式分析了stomp擴(kuò)展安裝及使用stomp擴(kuò)展連接ActiveMQ具體操作技巧,需要的朋友可以參考下2020-02-02

