使用 ZipArchive 类可实现 php 文件压缩 解压 。首先实例化 对象,用 open 方法创建或打开 ZIP 文件,通过 addFile 或 addFromString 添加内容,最后 close 保存;解压时调用 open 确认文件可读,用 extractTo 指定路径解压并 close 释放资源;还可通过 getNumFiles 获取文件数,结合 getNameIndex 遍历文件名;支持以 CREATE 模式向已有压缩包追加文件。

如果您需要在 PHP 中对文件进行压缩或 解压 操作,可以使用内置的 ZipArchive 类来实现。该类提供了完整的 接口 用于创建、读取和修改 ZIP 格式的压缩文件。以下是具体的操作方法:
一、使用 ZipArchive 压缩文件
通过 ZipArchive 类可以将一个或多个文件打包成 ZIP 格式。首先需要实例化 ZipArchive 对象,然后调用 open 方法创建一个新的压缩包,接着添加文件并保存。
1、创建新的 ZipArchive 实例:$zip = new ZipArchive();
2、打开或创建一个 ZIP 文件,使用模式参数指定操作类型,例如 ZipArchive::CREATE 表示如果文件不存在则创建它。
立即学习“PHP 免费学习笔记(深入)”;
3、使用 addFile 方法将现有文件添加到压缩包中,格式为 addFile(原始路径, 压缩包内路径)。
4、也可以使用 addFromString 方法直接将 字符串 内容写入压缩包中的指定文件。
5、所有文件添加完成后,调用 close 方法关闭压缩包并保存更改。
二、使用 ZipArchive 解压文件
解压操作是将 ZIP 包内的内容释放到指定目录。同样需要先打开 ZIP 文件,确认其有效性后执行解压动作。
1、实例化 ZipArchive 对象:$zip = new ZipArchive();
2、调用 open 方法传入目标 ZIP 文件路径,检查返回值是否为 true 以确认文件可读。
3、使用 extractTo 方法指定解压目标目录,例如$zip->extractTo(‘/path/to/destination’);
4、解压完成后必须调用 close 方法释放资源。
三、遍历并读取 ZIP 包内文件列表
有时需要查看压缩包中包含哪些文件而不实际解压。ZipArchive 允许通过索引访问每个条目信息。
1、打开 ZIP 文件后,可通过 getNumFiles 方法获取压缩包中文件总数。
2、使用 getNameIndex 方法配合 循环 遍历所有文件名,参数为从 0 开始的索引号。
3、输出或记录每个文件名称以便后续处理。
四、向已有 ZIP 包追加新文件
若需在不破坏原有内容的前提下增加文件,可通过特定模式打开 ZIP 包进行追加操作。
1、调用 open 方法时使用 ZipArchive::CREATE | ZipArchive::OVERWRITE 或仅用 CREATE 确保能修改已存在的包。
2、使用 addFile 或 addFromString 方法添加额外内容。
3、完成添加后执行 close 方法保存更新。


