php实现zip算法

PHP 实现 ZIP 压缩与解压
PHP 内置了 ZipArchive 类,可以方便地实现 ZIP 文件的压缩与解压操作。以下是具体实现方法:
创建 ZIP 文件并添加内容
$zip = new ZipArchive();
$filename = 'example.zip';
if ($zip->open($filename, ZipArchive::CREATE) === TRUE) {
// 添加文件到 ZIP
$zip->addFile('path/to/file.txt', 'file_in_zip.txt');
// 添加字符串内容到 ZIP
$zip->addFromString('content.txt', 'This is the content to be added');
// 添加空目录
$zip->addEmptyDir('new_directory');
$zip->close();
echo 'ZIP created successfully';
} else {
echo 'Failed to create ZIP';
}
解压 ZIP 文件
$zip = new ZipArchive();
$filename = 'example.zip';
if ($zip->open($filename) === TRUE) {
// 解压到指定目录
$zip->extractTo('path/to/extract/');
$zip->close();
echo 'ZIP extracted successfully';
} else {
echo 'Failed to extract ZIP';
}
读取 ZIP 文件内容
$zip = new ZipArchive();
$filename = 'example.zip';
if ($zip->open($filename) === TRUE) {
// 获取文件数量
$fileCount = $zip->numFiles;
// 遍历文件
for ($i = 0; $i < $fileCount; $i++) {
$stat = $zip->statIndex($i);
echo 'Filename: ' . $stat['name'] . ' | Size: ' . $stat['size'] . '<br>';
}
// 读取特定文件内容
$content = $zip->getFromName('file_in_zip.txt');
echo $content;
$zip->close();
}
注意事项
- 确保服务器已安装 zip 扩展(可通过 phpinfo() 查看)
- 操作 ZIP 文件需要相应的文件读写权限
- 大文件处理时需注意内存限制
- 中文文件名需确保编码一致
对于更高级的 ZIP 操作,如密码保护、分卷压缩等,可能需要使用第三方库如 PHPZip 或直接调用系统命令。







