PHP 压缩整个文件夹
时间: 2023-09-01 16:13:22 浏览: 150
你可以使用 PHP 的 ZipArchive 类来压缩整个文件夹。下面是一个示例代码,演示了如何压缩一个文件夹:
```php
function zipFolder($source, $destination) {
if (!extension_loaded('zip') || !file_exists($source)) {
return false;
}
$zip = new ZipArchive();
if (!$zip->open($destination, ZIPARCHIVE::CREATE)) {
return false;
}
$source = str_replace('\\', '/', realpath($source));
if (is_dir($source) === true) {
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source), RecursiveIteratorIterator::SELF_FIRST);
foreach ($files as $file) {
$file = str_replace('\\', '/', realpath($file));
if (is_dir($file) === true) {
$zip->addEmptyDir(str_replace($source . '/', '', $file . '/'));
} else if (is_file($file) === true) {
$zip->addFromString(str_replace($source . '/', '', $file), file_get_contents($file));
}
}
} else if (is_file($source) === true) {
$zip->addFromString(basename($source), file_get_contents($source));
}
return $zip->close();
}
// 用法示例
$sourceFolder = 'path/to/source/folder';
$destinationZip = 'path/to/destination/zipfile.zip';
if (zipFolder($sourceFolder, $destinationZip)) {
echo '文件夹压缩成功!';
} else {
echo '文件夹压缩失败!';
}
```
请注意,以上代码假设你已经安装了 Zip 扩展。如果没有安装,你需要先安装 Zip 扩展,然后在 PHP 配置文件中启用扩展。
阅读全文