PHP 把文件压缩成 .tar.gz

81 阅读1分钟

如题。代码如下。

function addFileToTargz($files, $targzName)
{
	if(is_file($targzName.'.tar')) {
		unlink($targzName.'.tar');
	}
	$a = new PharData($targzName.'.tar');

	if(is_string($files)) {
		// 判断文件是否存在
		if(is_file($files)) {
			$a->addFile($files);
		}
	}

	if(is_array($files)) {
		foreach ($files as $value) {
			// 判断文件是否存在
			if(is_file($value)) {
				$a->addFile($value);
			}
		}

	}

	if(is_file($targzName.'.tar.gz')) {
		unlink($targzName.'.tar.gz');
	}

	$a->compress(\Phar::GZ);

	unlink($targzName.'.tar');
}

使用示例

$targzName = 'demo';
$files = ['aaa.png','ccc.png'];
addFileToTargz($files,$targzName);