使用 php 获取 tar.gz 文件中的文件总数

Get total number of files inside a tar.gz file using php

我是 php 的菜鸟,但在一个项目中我想计算具有 tar.gz 的文件的数量,我知道如何计算一个 zip 文件的数量,但我的问题是:我可以(使用 php 函数)计算 tar.gz 文件中有多少个文件吗?

使用 php 我可以用这样的代码计算 zip 文件中的文件数

$zip = new ZipArchive(); 
if($zip->open("/path/to/the/zip")===true)
{
    print $zip->numFiles;
}
else
{
    print "cant open zip file";
}

但是对于 tgz 文件我可以做一些类似的事情吗(不使用 exec 函数)?

谢谢:)


感谢 Kkinsey,我得到了答案(对他的代码进行了一些修改)。最终代码将是

<?php

$archive = new PharData('/route/to/file.tar.gz');
$i=0;
foreach($archive as $file) 
{
    $i+=1;
}
print $i;
?>

谢谢@Kkinsey

尝试 PharData:

// Example: list files
$archive = new PharData('/some/file.tar.gz');
foreach($archive as $file) {
        echo "$file\n";
}