PHP Zip 学习笔记

什么是 Zip?

Zip 是一种被广泛使用的压缩格式,它可以压缩和解压缩文件以及文件夹,同时还支持密码保护等功能。在 PHP 中,我们可以使用 ZipArchive 类来进行 Zip 格式的文件压缩和解压缩。

ZipArchive 类

ZipArchive 类是 PHP 中用于 Zip 文件处理的类,它提供了许多方法来实现压缩和解压缩 Zip 文件的操作。以下是一些常用的 ZipArchive 方法:

创建新的 Zip 文件

可以使用 ZipArchive::open() 方法来创建一个新的 Zip 文件:

phpCopy Code
$zip = new ZipArchive(); if ($zip->open('example.zip', ZipArchive::CREATE) === TRUE) { // 添加文件到 Zip 文件中 $zip->addFile('file.txt'); // 关闭 Zip 文件 $zip->close(); echo 'Zip 文件创建成功'; } else { echo 'Zip 文件创建失败'; }

向 Zip 文件中添加文件

可以使用 ZipArchive::addFile() 方法来向 Zip 文件中添加文件:

phpCopy Code
$zip = new ZipArchive(); if ($zip->open('example.zip', ZipArchive::CREATE) === TRUE) { // 添加文件到 Zip 文件中 $zip->addFile('file.txt'); // 关闭 Zip 文件 $zip->close(); echo '文件添加成功'; } else { echo '文件添加失败'; }

解压缩 Zip 文件

可以使用 ZipArchive::extractTo() 方法来解压缩 Zip 文件:

phpCopy Code
$zip = new ZipArchive(); if ($zip->open('example.zip') === TRUE) { // 解压缩 Zip 文件 $zip->extractTo('/path/to/destination/directory'); // 关闭 Zip 文件 $zip->close(); echo 'Zip 文件解压缩成功'; } else { echo 'Zip 文件解压缩失败'; }

获取 Zip 文件中的文件列表

可以使用 ZipArchive::getFromName() 方法来获取 Zip 文件中的文件列表:

phpCopy Code
$zip = new ZipArchive(); if ($zip->open('example.zip') === TRUE) { // 获取 Zip 文件中的文件列表 for ($i = 0; $i < $zip->numFiles; $i++) { echo $zip->getNameIndex($i) . '<br />'; } // 关闭 Zip 文件 $zip->close(); } else { echo '打开 Zip 文件失败'; }

示例

以下是一个简单的示例,用于将多个文件压缩成一个 Zip 文件:

phpCopy Code
$files_to_zip = array( 'file1.txt', 'file2.txt', 'file3.txt' ); $zip_file = 'example.zip'; $zip = new ZipArchive(); if ($zip->open($zip_file, ZipArchive::CREATE) === TRUE) { foreach ($files_to_zip as $file) { $zip->addFile($file); } $zip->close(); echo 'Zip 文件创建成功'; } else { echo 'Zip 文件创建失败'; }

以上就是一些基本的 PHP Zip 操作,如果你需要更多的 Zip 操作,可以查阅 PHP 官方文档。