PharData 压缩嵌套原始 tar

问题描述

也许是有意为之,但我觉得奇怪的是“PharData compress”将原始 tar 嵌套在压缩的 tar.gz 中。所以你必须打开.tar.gz,你会看到你必须再次打开的原始.tar?

代码

    $tarPath  = $_SERVER['DOCUMENT_ROOT'].'api/sample2.tar';
    $pharData = new PharData( $tarPath  );
    $pharData->addFile( $_SERVER['DOCUMENT_ROOT'].'api/callback_post.txt','callback_post.txt' );
    $pharData->compress(Phar::GZ);

PHP 7.4

解决方法

这是两个不同的概念。 tar 打包文件,而 gz 压缩 tar 包。

你可以试试 ZipArchive

$zip = new ZipArchive;
$zip->open($_SERVER['DOCUMENT_ROOT'].'api/sample2.zip')
$zip->addFile($_SERVER['DOCUMENT_ROOT'].'api/callback_post.txt','callback_post.txt');
$zip->close();