php: herramienta de compresión de cadenas

Recientemente estoy trabajando en una herramienta de gestión de exportación de datos, que es útil para la compresión de cadenas, así que la grabé y espero que sea útil para otros.

1. ¿Cuáles son las funciones de compresión?

gzcompress: comprime la cadena dada usando el formato de datos ZLIB

gzencode: Crea una cadena comprimida con gzip

gzdeflate: encoge una cadena

bzcompress: comprime una cadena en datos codificados en bzip2

Comparación de eficiencia:

    gzcompress es el más rápido y tiene una relación de compresión más alta.
    gzdeflate tiene la relación de compresión más alta y es ligeramente más lento que gzcompress.
    gzencode está cerca de gzdeflate, pero gzdeflate tiene una ligera ventaja
    . bzcompress tiene la velocidad y relación de compresión más lentas.

Nota: Vale la pena mencionar que gzencode puede generar una compresión compatible con el formato gzip. Si se genera en un navegador, puede ser consistente con la codificación GZIP en el protocolo HTTP. Puede usar header('Content-Encoding: gzip'); Salida directa sin descompresión.

2. demostración

<?php
/**
 * 压缩工具
 *
 * ===================================================
 * 
 *   gzcompress 速度最快,压缩比率较高。 
 *   gzdeflate  压缩比率最高,速度稍慢于gzcompress 
 *   gzencode 与 gzdeflate 比较接近,gzdeflate稍有优势 
 *   bzcompress 速度最慢,压缩比率最慢。 
 *   
 *   因此建议使用 gzcompress 和 gzdeflate
 *
 * ===================================================
 * 
 * @package Tool
 * @author 蝶开三月
 */
class Tool_Compress {

    /**
     * 压缩(gzcompress)
     * 
     * @param  string  $str   要压缩的字符串
     * @param  int     $level 压缩级别。可以指定为0(表示无压缩),指定为9(表示最大压缩)
     * @return string
     */
    public static function funcGzcompress($str, $level = 9){
        return gzcompress($str, $level);
    }

    /**
     * 解压(gzuncompress)
     *
     * @param  string  $str   要解压的字符串
     * @return string
     */
    public static function funcGzuncompress($str){
        return gzuncompress($str);
    }

    /**
     * 压缩(gzdeflate)
     * 
     * @param  string  $str   要压缩的字符串
     * @param  int     $level 压缩级别。可以指定为0(表示无压缩),指定为9(表示最大压缩)
     * @return string
     */
    public static function funcGzdeflate($str, $level = 9){
        return gzdeflate($str, $level);
    }

    /**
     * 解压(gzinflate)
     *
     * @param  string  $str   要解压的字符串
     * @return string
     */
    public static function funcGzinflate($str){
        return gzinflate($str);
    }

    /**
     * 压缩(gzencode)
     * 因为是与gzip程序输出兼容的压缩版本,可以与HTTP协议上的GZIP编码契合,可以使用header('Content-Encoding: gzip');直接输出,而不用解压
     * 
     * @param  string  $str   要压缩的字符串
     * @param  int     $level 压缩级别。可以指定为0(表示无压缩),指定为9(表示最大压缩)
     * @return string
     */
    public static function funcGzencode($str, $level = 9){
        return gzencode($str, $level);
    }

    /**
     * 解压(gzdecode)
     *
     * @param  string  $str   要解压的字符串
     * @return string
     */
    public static function funcGzdecode($str){
        return gzdecode($str);
    }

    /**
     * 压缩(bzcompress)
     * 
     * @param  string  $str   要压缩的字符串
     * @param  int     $level 压缩级别。可以指定为0(表示无压缩),指定为9(表示最大压缩)
     * @return string
     */
    public static function funcBzcompress($str, $level = 9){
        return bzcompress($str, $level);
    }

    /**
     * 解压(bzdecompress)
     *
     * @param  string  $str   要解压的字符串
     * @return string
     */
    public static function funcBzdecompress($str){
        return bzdecompress($str);
    }    
}

Supongo que te gusta

Origin blog.csdn.net/panjiapengfly/article/details/126914559
Recomendado
Clasificación