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)