PHP中使用file_get_contents抓取网页中文乱码问题解决方法


Posted in PHP onDecember 17, 2014

本文实例讲述了PHP中使用file_get_contents抓取网页中文乱码问题解决方法。分享给大家供大家参考。具体方法如下:

file_get_contents函数本来就是一个非常优秀的php自带本地与远程文件操作函数,它可以让我们不花吹挥之力把远程数据直接下载,但我在使用它读取网页时会碰到有些页面是乱码了,这里就来给各位总结具体的解决办法.

根据网上有朋友介绍说原因可能是服务器开了GZIP压缩,下面是用firebug查看我的网站的头信息,Gzip是开了的,请求头信息原始头信息,代码如下:

Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 

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 3water.com 

User-Agent Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0

可以从header信息中找到 Content-Encoding 项是 Gzip.

解决办法比较简单,就是用 curl 代替 file_get_contents 去获取,然后在 curl 配置参数中加一条,代码如下:

curl_setopt($ch, CURLOPT_ENCODING, "gzip");

今天用 file_get_contents 抓图片的时候,开始没发现这个问题,废了老大劲才找出来.

使用自带的zlib库,如果服务器已经装了zlib库,用下面的代码可以轻易解决乱码问题,代码如下:

$data = file_get_contents("compress.zlib://".$url);

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
图形数字验证代码
Oct 09 PHP
第一节--面向对象编程
Nov 16 PHP
PHP配置心得包含MYSQL5乱码解决
Nov 20 PHP
实用函数3
Nov 08 PHP
Uchome1.2 1.5 代码学习 common.php
Apr 24 PHP
php 应用程序安全防范技术研究
Sep 25 PHP
php中mysql模块部分功能的简单封装
Sep 30 PHP
PHP5.3安装Zend Guard Loader图文教程
Sep 29 PHP
ThinkPHP处理Ajax返回的方法
Nov 22 PHP
Thinkphp5结合layer弹窗定制操作结果页面
Jul 07 PHP
PHP观察者模式定义与用法实例分析
Mar 22 PHP
PHP延迟静态绑定使用方法实例解析
Sep 05 PHP
apache中为php 设置虚拟目录
Dec 17 #PHP
PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法
Dec 17 #PHP
Linux中为php配置伪静态
Dec 17 #PHP
phpmyadmin提示The mbstring extension is missing的解决方法
Dec 17 #PHP
非常实用的PHP常用函数汇总
Dec 17 #PHP
php中magic_quotes_gpc对unserialize的影响分析
Dec 16 #PHP
php提示Warning:mysql_fetch_array() expects的解决方法
Dec 16 #PHP
You might like
ext for eclipse插件安装方法
2008/04/27 Javascript
HTML node相关的一些资料整理
2010/01/01 Javascript
扩展easyui.datagrid,添加数据loading遮罩效果代码
2010/11/02 Javascript
js实现鼠标拖动图片并兼容IE/FF火狐/谷歌等主流浏览器
2013/06/06 Javascript
js动态调用css属性的小规律及实例说明
2013/12/28 Javascript
javascript使用正则获取url上的某个参数
2014/09/04 Javascript
jquery实现带缩略图的全屏图片画廊效果实例
2015/06/25 Javascript
JS简单模拟触发按钮点击功能的方法
2015/11/30 Javascript
jQuery.cookie.js使用方法及相关参数解释
2017/03/06 Javascript
关于jQuery库冲突的完美解决办法
2017/05/20 jQuery
Vue中对拿到的数据进行A-Z排序的实例
2018/09/25 Javascript
jquery实现动态改变css样式的方法分析
2019/05/27 jQuery
模块化react-router配置方法详解
2019/06/03 Javascript
uni-app如何实现增量更新功能
2020/01/03 Javascript
微信小程序接入vant Weapp组件的详细步骤
2020/10/28 Javascript
Python ORM框架SQLAlchemy学习笔记之关系映射实例
2014/06/10 Python
Python和GO语言实现的消息摘要算法示例
2015/03/10 Python
python制作websocket服务器实例分享
2016/11/20 Python
Python机器学习库scikit-learn安装与基本使用教程
2018/06/25 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
2018/10/28 Python
django admin.py 外键,反向查询的实例
2019/07/26 Python
详解python 支持向量机(SVM)算法
2020/09/18 Python
让IE可以变相支持CSS3选择器
2010/01/21 HTML / CSS
亚洲最大的眼镜批发商和零售商之一:Glasseslit
2018/10/08 全球购物
新西兰Bookabach:查找全球度假屋
2020/12/03 全球购物
Ajax的工作原理
2015/12/04 面试题
2014新课程改革心得体会
2014/03/10 职场文书
2014年外联部工作总结
2014/11/17 职场文书
工作经验交流材料
2014/12/30 职场文书
鼋头渚导游词
2015/02/05 职场文书
认真学习保证书
2015/02/26 职场文书
团员自我评价范文
2015/03/10 职场文书
人民的好儿女观后感
2015/06/18 职场文书
运动会宣传稿50字
2015/07/23 职场文书
一文搞懂Java中的注解和反射
2022/06/21 Java/Android
SpringBoot项目多数据源及mybatis 驼峰失效的问题解决方法
2022/07/07 Java/Android