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 官方文档。