PHP 使用 Phar 压缩与归档

前言

最近有要用到 PHP 压缩文件为 tar.gz 格式的场景,一开始的时候在网上找了一圈,发现有用的解答比较少。自己琢磨了半天实现了,分享一下我的解决方法,抛砖引玉。

本文使用的是 PharData,PharData 继承并扩展了 Phar,功能相强大一些,也更符合我的场景需要。更多使用方法,可参考 官方网站

Show My Code

1
2
3
4
5
6
7
8
// 使用 PharData 实例化,指明 tar 文件的路径
$tarFile = new PharData('./path/to/file.tar');
// 往 tarFile 中增加文件,第一个参数是指源文件路径,第二个指 tarFile 中的目标路径
$tarFile->addFile('./path/to/file', 'local/path/to/file');
// 所有文件添加完毕后,压缩文件为 GZ 格式,同时还支持 Phar::BZ2
$tarFile->compress(Phar::GZ);
// 需要手动清理压缩前的文件
unlink('./path/to/file.tar')