压缩级别 (compflags) 选项通常是介于 0 和 9 之间的整数。系统的行为取决于所选方法和 compflags 的值,有时可能与您的预期不符。
以下结果来自 Windows 平台上的 PHP 8.1,在其他系统或版本上可能有所不同
- 对于 CM_DEFAULT 方法,始终使用 CM_DEFLATE 级别 9,无论您将 compflags 设置为多少,
- 对于 CM_STORE 方法,对于 compflags 0-9,您将获得相同的结果,这很明显,因为该方法本身意味着“根本不压缩”。但是,对于 compflags>9,令人惊讶的是,改为使用 CM_DEFLATE 方法,压缩级别为 9。
- 对于 CM_DEFLATE 方法,1 表示最快和最弱的压缩,而 9 表示最慢和最强的压缩。compflags=0 和 compflags>9 的作用与 compflags=9 相同,
- 对于 CM_BZIP2 方法,1 表示最快和最弱的压缩,而 9 表示最慢和最强的压缩。compflags=0 的作用与 compflag=9 相同,如果您使用 compflags>9,该方法将意外地切换到 CM_DEFLATE 级别 9,
- 对于 CM_XZ 方法,0 表示最快和最弱的压缩,而 9 表示最慢和最强的压缩。对于 compflags>9,该方法意外地切换到 CM_DEFLATE 级别 9。