northrook/compressor

PHP 压缩库。

dev-main 2024-07-20 12:37 UTC

This package is auto-updated.

Last update: 2024-09-20 12:57:41 UTC


README

这是一个使用 PHP zlib 的无损数据压缩库。

重要

此包仍在开发中。

虽然它被认为是最小可行产品(MVP)且稳定,但它可能仍然会经历破坏性更改。

安装

composer require northrook/compressor

使用

压缩

使用 Compressor::compress() 函数压缩数据,它有两个参数

  • mixed $data 要压缩的数据。它进行了类型检查,如果不是字符串,则使用本地 \serialize 函数序列化
  • int $level 压缩级别,从 0 到 9,默认为 9。
$example = \Northrook\Compressor::compress( $_SERVER ) : Compressor;
$example->data;  // Resulting compressed string
$example->report // "Compressed data array, from 3.54kB to 1.41kB, saving 60.17%."

解压

要解压数据,请使用 decompress 静态函数,它有两个参数

  • string $data 要解压的数据。默认情况下进行反序列化。
  • bool $raw 返回原始解压数据。
$server_array = \Northrook\Compressor::decompress( $example ) : mixed;
$server_array // 

提示

在某些情况下,通过预先序列化数据可以获得更高的压缩率。

只需别忘了设置 decompress( $data, true ),并在外部应用适当的反序列化器。

HTML 类型的字符串数组通常可以从使用 json_encode 中受益,通常比 serialize~2%

备注

Compressor 类是 \Stringable,但也提供了只读的 data 属性以进行无歧义的访问。

许可证

MIT