php中file_get_contents获取网页乱码解决办法

我采集的一个页面,如下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文件的设置,找到

 代码如下 复制代码
php_curl.dll

//取消下在的注释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之前安装的方法.

时间: 2024-08-02 12:07:18

php中file_get_contents获取网页乱码解决办法的相关文章

php中json_encode中文字符乱码解决办法

一.json_encode() 这个是一个对变量进行 JSON 编码常用的函数,但是当文本的格式不是utf-8时,中文的转码会出现一些问题,比如文本为gb2312的时候 示例  代码如下 复制代码 <?php $jsonText = array (  0 => array (   'id' => '1',   'name' => '文本1'  ),  1 => array (   'id' => '2',   'name' => '文本2'   ) ) ;   e

在Jsp程序读取或向DB写入数据乱码解决办法

js|程序|解决|数据 在Jsp程序读取或向DB写入数据乱码解决办法 在基于JAVA的编程中,经常会碰到汉字的处里及显示的问题,比如一大堆乱码或问号.这是因为JAVA中默认的编码方式是UNICODE,而中国人通常使用的文件和DB都是基于GB2312或者BIG5等编码,故会出现此问题.以前我也经常为这个问题而苦恼,后来经查了些资料,终于解决了,我知道一定有很多朋友也会碰到这个问题,所以特就总结了一下,来拿出来让大家一起分享了.1.在网页中输出中文.JAVA在网络传输中使用的编码是"ISO-8859

Excel2010开启CSV文件乱码解决办法

  Excel2010开启CSV文件乱码解决办法           首先将乱码的CSV文件用记事本的方式打开,可以看到不乱码了,但是没有了格式.接着执行另存为新档,在对话框中将UTF-8的编码改成ANSI,存档之后重新用Excel打开,这是就可以看到CSV 已经不乱码了. 步骤 Excel2010 1.首先,将有乱码的 CSV 档透过记事本的方式开启. Excel2010 2.用记事本打开的 CSV 档,你会发现文字是正常的,但格式已经不敷存在,没关系,让我们按下档案中的另存新档. 3.在另存

在C#中如何获取网页的验证码链接地址

问题描述 在C#中如何获取网页的验证码链接地址 在C#中如何获取网页的验证码链接地址,比如我想通过在C#窗体中点击获取验证码按钮,得到网页的验证码. 解决方案 你是指验证码图片还是验证码的字符串? 如果是验证码图片,那么一般验证码的图片都是有个链接的,你先获取到这个链接然后将这个链接拼接到当前地址后面(或者当前地址的上一级). 然后通过WebClient的DownloadFile方法下载验证码图片... 如果你想要获取验证码字符串就必须自己想办法识别了...简单的验证码可以通过调用第三方识别引擎

ASP.NET中Request接收参数乱码解决方法

asp教程.net中request接收参数乱码解决方法 asp.net教程 request对象的属性和方法比较多,常用的几个为:useragent 传回客户端浏览器的版本信息,userhostaddress 传回远方客户端机器的主机ip 地址,userhostname 传回远方客户端机器的dns 名称,physicalapplicationpath 传回目前请求网页在server 端的真实路径. 下面进行正题,我的web.config配置文件里配置了全局为"gb2312"编码: <

php substr截断汉字乱码解决办法

substr() 函数返回字符串的一部分. 语法 substr(string,start,length) 例子 1  代码如下 复制代码 <?php echo substr("Hello world!",6); ?> 输出: world! 例子2  代码如下 复制代码 echo substr('中国文',1); 结果就是筹码了,后来才知道中文与英文的区别在于内编码了,一个网站这样说到substr函数在截取字符时是按字节来截取的,中文字符在GB2312编码时为2个字节,utf

linux下php添加zlib后页面乱码解决办法

在linux下php添加zlib后页面乱码的解决办法 原因: 在php.ini中 如果zlib.output_compression = On,那在程序中不就要再使用gzencode()压缩,不然就会呈现乱码. 解决办法: zlib.output_compression = Off 重启apache即可. zlib安装 1. 下载安装zlib http://www.gzip.org/zlib/ 解压tar包,进入目录执行命令: 1 ./configure && make &&

Source Insight 中文注释为乱码解决办法(完美解决,一键搞定)【转】

转自:http://blog.csdn.net/bjarnecpp/article/details/70174752 版权声明:本文为博主原创文章,未经博主允许不得转载. Source Insight中文注释为乱码解决办法 我网上查了一堆解决办法,但是都是2017年以前的,并且都是针对于source insight 3.5及以下版本的解决方案,软件版本都到4.0了,应该有新方法出现. --------------------------------------干货:Source Insight

数据库 MySQL中文乱码解决办法总结

MySQL中文乱码解决办法 前言: MySQL是我们项目中非常常用的数据型数据库.但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况.下面就来介绍一下如何彻底解决数据库中文乱码情况. 1.中文乱码 1.1.中文乱码 create table user(name varchar(11)); # 创建user表 insert into table user("carl"); # 添加数据 select * from user; insert into user value(&