PharData 压缩嵌套原始 tar
Posted
技术标签:
【中文标题】PharData 压缩嵌套原始 tar【英文标题】:PharData compress nests original tar 【发布时间】:2021-07-17 12:54:03 【问题描述】:也许这是有意的,但我觉得奇怪的是“PharData compress”将原始 tar 嵌套在压缩的 tar.gz 中。所以你必须打开.tar.gz,你会看到你必须再次打开的original.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
【问题讨论】:
【参考方案1】:这是两个不同的概念。 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();
【讨论】:
好吧,但我只是想要一个 tar.gz,其中包含第一层的所有文件,而不是 tar.gz 中的 tar 文件。 我必须发送一个 tar.gz,所以 zip 不是一个有效的替代方案。 Chris Kerngebiet 如果你必须使用 .tar.gz 我想你必须尊重 .tar.gz 格式。 如果您编写的代码正常工作,一切正常。您的问题看起来像是您认为 .tar.gz 的行为很奇怪,但它确实有效。以上是关于PharData 压缩嵌套原始 tar的主要内容,如果未能解决你的问题,请参考以下文章