解析PHP中的file_get_contents获取远程页面乱码的问题

yipeiwu_com7年前PHP代码库
PHP的file_get_contents获取远程页面内容,如果是gzip编码过的,返回的字符串就是编码后的乱码
1、解决方法,找个ungzip的函数来转换下
2、给你的url加个前缀,这样调用
$content = file_get_contents("compress.zlib://".$url);
无论页面是否经过gzip压缩,上述代码都可以正常工作!
使用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;
}

相关文章

vs中通过剪切板循环来循环粘贴不同内容

举个简单的例子,这里有一段代码: 复制代码 代码如下: function Button1_onclick() { alert("Hello"); alert("JacobSong");...

详解PHP实现执行定时任务

PHP在这方面应该说是比较弱,如果只用php去实现可以如下: <?php ignore_user_abort();//关闭浏览器后,继续执行php代码 set_ti...

php防止网站被刷新的方法汇总

本文实例讲述了php防止网站被刷新的方法。分享给大家供大家参考。具体方法如下: 对于像采用WP建设的站来说,频繁的刷新会导致数据库吃紧。下面附上一段代码,防止频繁的刷新造成的死机情况。...

PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法

问题: php函数date("Y-n-d   H-i-s");   输出的时间与当地时间相差8个小时. 解决思路 北京时间是东8区,可能是时区问...

shell脚本作为保证PHP脚本不挂掉的守护进程实例分享

前几天开始跑一份数据名单,名单需要提供用户名、是否有手机号、是否有邮箱,用户名单我轻易的获取到了,但是,用户名单有2000w之多,并且去检测用户是否有手机号、是否有邮箱必须得通过一个对外...