Content-Encoding: gzip
远程获取到内容
乱码 如何解压??

解决方案 »

  1.   

    解压函数
    string gzdecode ( string $data [, int $length ] );
    压缩函数是gzencode
      

  2.   

    Call to undefined function gzdecode()
    这个是自定义 还是另外要开的
      

  3.   

    要加载zlib模块,具体看看php的手册说明。
      

  4.   

    zlib.output_compression = on
    ;zlib.output_compression_level = -1
    本机php.ini里头有这个zlib.output_compression = on开启后 我本机测试程序也可以以gzip压缩后输出
    不知道这样是否已经加载了zlib模块问题是还不懂如何解压 具体如何配置???
      

  5.   

    可以压缩不是说明我的环境可以支持解压么在PHP手册里头找到一个gzdecode自定义函数调用解压输入内容为空白 我已经去掉了HTTP头 还是一样
      

  6.   

    解压的话,应该是gzuncompress。
    但我这里测试,直接读到gzip压缩的内容就可以用,不会乱码。
      

  7.   


    $str="";
    $fp = fsockopen("ask.39.net", 80, $errno, $errstr, 30);
     
    if (!$fp) {
        echo "$errstr ($errno)<br />\n";
    } else {
       
          $out = "GET /question/10819414.html HTTP/1.1\r\n";
     $out .= "Accept: application/x-shockwave-flash, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*/\r\n";
     $out.="Accept-Language: zh-cn\r\n";
    $out.="Accept-Encoding: gzip,deflate\r\n";
      $out.="User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n";
        $out .= "Host: ask.39.net\r\n";

      
       
      //  $out.="Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7\r\n";
     //$out.="Keep-Alive: 300\r\n";
    $out.="Connection: keep-alive\r\n";
        $out .= "Cookie: onlineId=5347153279694344113; ip_to_city=%BD%AD%CE%F7%CA%A1%B8%D3%D6%DD%CA%D0+%B5%E7%D0%C5; __utma=56571124.2013124916.1279761358.1279761358.1279761358.1; __utmb=56571124.3.10.1279761358; __utmz=56571124.1279761358.1.1.utmcsr=baidu|utmccn=(organic)|utmcmd=organic|utmctr=39; online_bbs=4799118517545223018; laston_bbs=634153871235869750; Hm_lvt_e517564e98c2825803fdf00b6c0d9ee7=1279761404390; Hm_lvt_1827105cf5cfac624c8dbf5159abfdb4=1279761721875\r\n\r\n";
    $out.="Cache-Control: max-age=0\r\n";    fwrite($fp, $out);    while (!feof($fp)) {
             $str.=fgets($fp, 128);
    //echo $str;
        }
        fclose($fp);
    }echo $str;我要处理的就是这个内容 下面是处理HTTP头 及一些没用的错误反馈function cut($file,$from,$end,$num=1){        $message=explode($from,$file);
            $message=explode($end,$message[$num]);
    return        $message[0];
    }
    $str=cut($str,"X-UA-Compatible: IE=EmulateIE7","HTTP/1.1 400 Bad Request");
    echo $str;
    用gzuncompress给出的是数据错误
      

  8.   

    上面去HTTP头有错误 用这个是完全取GZIP 可能有错误 总之无法解压function cut($file,$from,$end,$num=1){        $message=explode($from,$file);
            $message=explode($end,$message[$num]);
    return        $message[0];
    }
    $str=cut($str,"Transfer-Encoding: chunked","HTTP/1.1 400 Bad Request");
    echo $str;
      

  9.   

    学艺不精,确实不好解压。
    但是可以绕着走!
    记得我上次说过,发送的头中
    $out.="Accept-Encoding: gzip,deflate\r\n";
    是可以接受 gzip 压缩数据,但有解压的麻烦
    其实你只要去掉 gzip
    $out.="Accept-Encoding: deflate\r\n";
    就可以得到明文了
      

  10.   

    这点下午GOOGLE的时候 也发现了 的确解决了所有问题 但是网上还有种情况服务器 无视HTTP头发送的信息 想解决这个解压问题 以后遇上了 就不用烦恼
      

  11.   


    今天早上7点测试时发现 服务器无视我的请求 Accept-Encoding: deflate这样没任何信息给我 昨天下午测试有明文 使用gzip后可以得到压缩后的数据 貌似服务器有设置
      

  12.   

    请求的时候, 把 Accept-Encoding 整个去掉...
      

  13.   

    没用的 只有接受GZIP 才有数据反馈给我 只有解压GZIP
      

  14.   

    伪造来路还是?
    访问的URL 我在上面的代码已经提供了 
    这几天GOOGLE了几个函数 都失败告终 无法正确的解压出来 
    C++语言区看到人家成功解压了 不懂怎么应用到PHP来
      

  15.   

    http://topic.csdn.net/u/20081106/21/5c5020c1-e9e5-4c32-a3d1-000cc7089754.html
      

  16.   

    http://blog.csdn.net/sxldfang/archive/2010/04/12/5478078.aspx
      

  17.   

    http://blog.csdn.net/wfqxx/archive/2009/07/16/4353801.aspx