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 相关文章推荐
Zend引擎的发展 [15]
Oct 09 PHP
利用PHP制作简单的内容采集器的原理分析
Oct 01 PHP
解析PHP计算页面执行时间的实现代码
Jun 18 PHP
微信支付开发交易通知实例
Jul 12 PHP
PHP url的pathinfo模式加载不同控制器的简单实现
Aug 12 PHP
PHP定时任务获取微信access_token的方法
Oct 10 PHP
thinkPHP交易详情查询功能详解
Dec 02 PHP
PHPExcel导出2003和2007的excel文档功能示例
Jan 04 PHP
PHP使用xpath解析XML的方法详解
May 20 PHP
PHP简单获取随机数的常用方法小结
Jun 07 PHP
解决php写入数据库乱码的问题
Sep 17 PHP
tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析
Feb 11 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
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
2009/09/30 PHP
关于php正则匹配汉字的方法介绍
2013/04/25 PHP
destoon在360浏览器下出现用户被强行注销的解决方法
2014/06/26 PHP
php使用类继承解决代码重复的问题
2015/02/11 PHP
PHP+原生态ajax实现的省市联动功能详解
2017/08/15 PHP
Laravel 实现在Blade模版中使用全局变量代替路径的例子
2019/10/22 PHP
javascript正则表达式中参数g(全局)的作用
2010/11/11 Javascript
ASP.NET jQuery 实例5 (显示CheckBoxList成员选中的内容)
2012/01/13 Javascript
js写一个字符串转成驼峰的实例
2013/06/21 Javascript
判断某个字符在一个字符串中是否存在的js代码
2014/02/28 Javascript
jquery弹窗插件colorbox绑定动态生成元素的方法
2014/06/20 Javascript
详解jQuery简单的表单应用
2016/12/16 Javascript
addEventListener()与removeEventListener()解析
2017/04/20 Javascript
JavaScript之事件委托实例(附原生js和jQuery代码)
2017/07/22 jQuery
vue中子组件向父组件传递数据的实例代码(实现加减功能)
2018/04/20 Javascript
javascript for循环性能测试示例
2019/08/07 Javascript
使用python装饰器验证配置文件示例
2014/02/24 Python
Python数组定义方法
2016/04/13 Python
使用Python从零开始撸一个区块链
2018/03/14 Python
linux环境中没有网络怎么下载python
2019/07/07 Python
Centos7 下安装最新的python3.8
2019/10/28 Python
python“静态”变量、实例变量与本地变量的声明示例
2020/11/13 Python
Python 爬虫批量爬取网页图片保存到本地的实现代码
2020/12/24 Python
python实现PolynomialFeatures多项式的方法
2021/01/06 Python
Python实现图片指定位置加图片水印(附Pyinstaller打包exe)
2021/03/04 Python
使用HTML5技术开发一个属于自己的超酷颜色选择器
2013/09/22 HTML / CSS
英国网上超市:Ocado
2020/03/05 全球购物
迟到检讨书500字
2014/02/05 职场文书
奥巴马开学演讲稿
2014/05/15 职场文书
湖南省召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
2014年教学管理工作总结
2014/12/02 职场文书
读后感作文评语
2014/12/25 职场文书
2015年度团总支工作总结
2015/04/23 职场文书
导游词之无锡东林书院
2019/12/11 职场文书
python如何在word中存储本地图片
2021/04/07 Python
Python3 使用pip安装git并获取Yahoo金融数据的操作
2021/04/08 Python