zoukankan      html  css  js  c++  java
  • PHP 实现 GZIP 压缩处理

    ob_start();
    ob_implicit_flush(0);
    $HTTP_ACCEPT_ENCODING = $_SERVER['HTTP_ACCEPT_ENCODING'];
    function CheckCanGzip()
    {
        global $HTTP_ACCEPT_ENCODING;
        if (headers_sent() || connection_aborted()){
            return 0;
        }
        if (strpos($HTTP_ACCEPT_ENCODING, 'x-gzip') !== false) return "x-gzip";
        if (strpos($HTTP_ACCEPT_ENCODING,'gzip') !== false) return "gzip";
        return 0;
    }
    /* $level = compression level 0-9, 0=none, 9=max */
    
    function GzDocOut($level=1,$debug=0){
        $ENCODING = CheckCanGzip(); 
        if ($ENCODING){
            $Contents = ob_get_contents();
            ob_end_clean();
            if ($debug){
                $s = "<p>Not compress length: ".strlen($Contents);
                $s .= "
                Compressed length: ".strlen(gzcompress($Contents,$level));
                $Contents .= $s;
            }
    
            //header("Content-Encoding: gzip");
          
            $Size = strlen($Contents);
            $Crc  = crc32($Contents);
            $Contents = gzcompress($Contents,$level);
            $Contents = substr($Contents, 0, strlen($Contents) - 4);
            print $Contents;
            print pack('V',$Crc);
            print pack('V',$Size);
            exit;
        }else{
            ob_end_flush();
            exit;
        }
    }
  • 相关阅读:
    ios资源
    学习swift开源项目
    学习di'z地址
    IOS基础库
    IT自学论坛
    HVTableView 分享组
    IOS中的动画菜单
    iOS 通讯录操作
    ios中autolayout
    ios 程序学习
  • 原文地址:https://www.cnblogs.com/wanglijun/p/12607507.html
Copyright © 2011-2022 走看看