PHP Zip 扩展使您能够轻松地读取或读取 ZIP 压缩文件及其内部的文件。

安装

Linux 系统

从PHP 7.4.0 开始,为了使用这些函数,必须使用 --with-zip 配置选项将 PHP 编译为支持 zip。以前,必须使用 --enable-zip 配置选项来启用 zip 支持。从 PHP 7.4.0 开始,一堆 libzip 已被删除。

从 PHP 7.3.0 开始,不鼓励针对一堆 libzip 进行构建,但仍然可以通过在配置中添加 --without-libzip 来实现。

添加了 --with-libzip=DIR 配置选项以使用系统 libzip 安装。需要 libzip 版本 0.11,建议使用 0.11.2 或更高版本。

Windows

在 Windows 上,此扩展是内置的。

运行时配置

此扩展不在 php.ini 中定义的配置指令。

PHP ZipArchive 类

类定义
ZipArchive PHP ZipArchive 类。
方法描述
close() 关闭zip文件文档
count() 计算文档中的文件数量
open() 打zip文件文档

PHP Zip 函数

注意:从 PHP 8.0.0 开始,函数化的 API 已被废弃使用。应该使用ZipArchive类。

函数描述
zip_close() 关闭zip文件文档。
zip_open() 打开zip文件文档。
zip_read () 读取zip文件文档。

PHP Zip常量

下面的常用量是由这个扩展定义的,只有当扩展被编译到PHP或者在运行时动态加载时才可用。

ZipArchive 使用类常量。常量有清晰类型:标志(导出为FL_)、错误(导出为ER_)和模式(无导出)。

常量类型描述
ZipArchive:: CREATE整数如果存档不存在则创建。
ZipArchive::OVERWRITE整数如果存档存在,则忽略其当前内容。换句话说,以与空存档相同的方式处理它。        
ZipArchive::EXCL整数
如果存档则出错已存在。
ZipArchive::RDONLY整数以只读模式打开存档。如果针对 libzip ≥ 1.0.0 构建,则分别从 PHP 7.4.3 和 PECL zip 1.17.1 开始提供。
ZipArchive::CHECKCONS整数对存档执行额外的一致性检查,如果失败则出错。
ZipArchive::FL_NOCASE整数忽略名称查找时的大小写
ZipArchive::FL_NODIR整数忽略目录组件
ZipArchive::FL_COMPRESSED整数读取压缩数据
ZipArchive::FL_UNCHANGED整数使用原始数据,忽略更改。
ZipArchive::FL_RECOMPRESS整数强制重新压缩数据。从 PHP 8.0.0 和 PECL zip 1.18.0 开始可用。
ZipArchive::FL_ENCRYPTED整数读取加密数据(意味着 FL_COMPRESSED)。从 PHP 8.0.0 和 PECL zip 1.18.0 开始可用。
ZipArchive::FL_OVERWRITE整数如果文件包含名称已存在,覆盖(替换)它。自 PHP 8.0.0 和 PECL zip 1.18.0 起可用。
ZipArchive::FL_LOCAL整数在本地标头中。从 PHP 8.0.0 和 PECL zip 1.18.0 开始可用。
ZipArchive::ZIP_FL_CENTRAL整数在中央目录中。从 PHP 8.0.0 和 PECL zip 1.18.0 开始可用。
ZipArchive::FL_ENC_GUESS整数猜测字符串编码(默认)。从 PHP 7.0.8 开始可用。
ZipArchive::FL_ENC_RAW整数获取未修改的字符串。自 PHP 7.0.8 起可用。
ZipArchive::FL_ENC_STRICT整数严格遵循规范。从 PHP 7.0.8 开始可用。
ZipArchive::FL_ENC_UTF_8整数字符串采用 UTF-8 编码。从 PHP 7.0.8 开始可用。
ZipArchive::FL_ENC_CP437整数字符串采用 CP437 编码。从 PHP 7.0.8 开始可用。
ZipArchive::CM_DEFAULT整数放缩或存储更好。
ZipArchive::CM_STORE整数存储(未压缩)。
ZipArchive ::CM_SHRINK整数缩小
ZipArchive::CM_REDUCE_1整数减少因子 1
ZipArchive::CM_REDUCE_2整数减少因子 2
ZipArchive::CM_REDUCE_3整数减少因子 3
ZipArchive::CM_REDUCE_4整数
减少因子 4
ZipArchive::CM_IMPLODE整数imploded
ZipArchive::CM_DEFLATE整数压缩
ZipArchive ::CM_DEFLATE64整数deflate64
ZipArchive::CM_PKWARE_IMPLODE整数PKWARE 内爆
ZipArchive::CM_BZIP2整数BZIP2 算法
ZipArchive::CM_LZMA整数LZMA算法
ZipArchive::CM_LZMA2整数LZMA2算法。如果针对 libzip ≥ 1.6.0 构建,则分别从 PHP 7.4.3 和 PECL zip 1.16.0 开始提供。
ZipArchive::CM_ZSTD整数Z标准算法。如果针对 libzip ≥ 1.8.0 构建,则分别从 PHP 8.0.0 和 PECL zip 1.19.1 开始提供。
ZipArchive::CM_XZ整数XZ算法。如果针对 libzip ≥ 1.6.0 构建,则分别从 PHP 7.4.3 和 PECL zip 1.16.1 开始提供。
ZipArchive::ER_OK整数没有错误。
ZipArchive::ER_MULTIDISK整数多磁盘zip存档不支持。
ZipArchive::ER_RENAME整数重命名临时文件失败。
ZipArchive::ER_CLOSE整数关闭 zip 存档失败
ZipArchive::ER_SEEK整数查找错误
ZipArchive::ER_READ整数读取错误
ZipArchive::ER_WRITE整数写入错误
ZipArchive::ER_CRC整数CRC 错误
ZipArchive::ER_ZIPCLOSED整数包含 zip 存档已关闭
ZipArchive::ER_NOENT整数没有此类文件
ZipArchive::ER_EXISTS整数文件已存在
ZipArchive::ER_OPEN整数无法打开文件
ZipArchive::ER_TMPOPEN整数无法打开创建临时文件
ZipArchive::ER_ZLIB整数Zlib错误
ZipArchive::ER_MEMORY整数内存分配失败
ZipArchive::ER_CHANGED字符串条目已更改
ZipArchive::ER_COMPNOTSUPP整数不支持压缩方法
ZipArchive::ER_EOF整数过早的 EOF
ZipArchive:: ER_INVAL整数无效参数
ZipArchive::ER_NOZIP整数不是 zip 存档
ZipArchive::ER_INTERNAL整数内部错误
ZipArchive::ER_INCONS整数Zip 存档不一致
ZipArchive::ER_REMOVE整数无法删除文件
ZipArchive::ER_DELETED整数条目已被删除已删除
ZipArchive::ER_ENCRNOTSUPP整数不支持加密方法。分别从 PHP 7.4.3 和 PECL zip 1.16.1 开始提供。
ZipArchive::ER_RDONLY整数读取-仅存档。分别从 PHP 7.4.3 和 PECL zip 1.16.1 开始提供。
ZipArchive::ER_NOPASSWD整数否提供密码。分别从 PHP 7.4.3 和 PECL zip 1.16.1 开始提供。
ZipArchive::ER_WRONGPASSWD整数错误提供密码。分别从 PHP 7.4.3 和 PECL zip 1.16.1 开始提供。
ZipArchive::ZIP_ER_OPNOTSUPP整数操作不支持。如果针对 libzip ≥ 1.0.0 构建,则分别从 PHP 7.4.3 和 PECL zip 1.16.1 开始提供。
ZipArchive::ZIP_ER_INUSE整数资源仍在使用中。如果针对 libzip ≥ 1.0.0 构建,则分别从 PHP 7.4.3 和 PECL zip 1.16.1 开始提供。
ZipArchive::ZIP_ER_TELL整数告诉错误。如果针对 libzip ≥ 1.0.0 构建,则分别从 PHP 7.4.3 和 PECL zip 1.16.1 开始提供。
ZipArchive::ZIP_ER_COMPRESSED_DATA整数压缩数据无效。如果针对 libzip ≥ 1.6.0 构建,则分别从 PHP 7.4.3 和 PECL zip 1.16.1 开始提供。
ZipArchive::ER_CANCELLED整数操作已取消。如果针对 libzip ≥ 1.6.0 构建,则分别从 PHP 7.4.3 和 PECL zip 1.16.1 开始提供。
ZipArchive::EM_NONE整数不加密。分别从 PHP 7.2.0 和 PECL zip 1.14.0 开始提供。
ZipArchive::EM_TRAD_PKWARE整数传统PKWARE 加密。分别从 PHP 8.0.0 和 PECL zip 1.19.0 开始提供。
ZipArchive::EM_AES_128整数AES 128加密。如果针对 libzip ≥ 1.2.0 构建,则分别从 PHP 7.2.0 和 PECL zip 1.14.0 开始提供。
ZipArchive::EM_AES_192整数AES 192 加密。如果针对 libzip ≥ 1.2.0 构建,则分别从 PHP 7.2.0 和 PECL zip 1.14.0 开始提供。
ZipArchive::EM_AES_256整数AES 256 加密。如果针对 libzip ≥ 1.2.0 构建,则分别从 PHP 7.2.0 和 PECL zip 1.14.0 开始提供。
ZipArchive::EM_UNKNOWN整数未知的加密算法。分别从 PHP 8.0.0 和 PECL zip 1.19.0 开始提供。
ZipArchive::LIBZIP_VERSION整数Zip库版本。从 PHP 7.4.3 和 PECL zip 1.16.0 开始提供。

外部属性的网络常量。

  • ZipArchive::OPSYS_DOS (int)

  • ZipArchive::OPSYS_AMIGA (int)

  • ZipArchive::OPSYS_OPENVMS (int)

  • ZipArchive::OPSYS_UNIX (int)

  • ZipArchive::OPSYS_VM_CMS(int)

  • ZipArchive::OPSYS_ATARI_ST(int)

  • ZipArchive::OPSYS_OS_2(int)

  • ZipArchive: :OPSYS_MACINTOSH (int)

  • ZipArchive::OPSYS_Z_SYSTEM (int)

  • ZipArchive::OPSYS_CPM (int)

  • ZipArchive::OPSYS_WINDOWS_NTFS (int)

  • ZipArchive::OPSYS_WINDOWS_NTFS (int)

  • ZipArchive::OPSYS_WINDOWS_NTFS (int) 

  • ZipArchive::OPSYS_MVS(int)

  • ZipArchive::OPSYS_VSE(int)

  • ZipArchive::OPSYS_ACORN_RISC(int)

  • ZipArchive::OPSYS_VFAT (int)

  • ZipArchive::OPSYS_ALTERNATE_MVS (int)

  • ZipArchive::OPSYS_BEOS (int)

  • ZipArchive::OPSYS_TANDEM (int)

  • ZipArchive::OPSYS_OS_400 (int)

  • ZipArchive::OPSYS_OS_X (int)

  • ZipArchive::OPSYS_DEFAULT (int) - 自 PECL zip 1.12.4 起

  • ZipArchive::OPSYS_OS_400 (int)