我有一些.tar.gz,.tar.bzip2和.tar文件,我想显示它们的内容。自从我用Phar创建它们之后,尝试通过phar查看它们是有意义的,所以我尝试了一些东西。
首先我尝试了php示例
$p = new Phar($myArchive[0], 0);
// Phar extends SPL's DirectoryIterator class
foreach (new RecursiveIteratorIterator($p) as $file) {
// $file is a PharFileInfo class, and inherits from SplFileInfo
echo $file->getFileName() . "\n";
echo file_get_contents($file->getPathName()) . "\n"; // display contents;
}
它不起作用。
$fh = new RecursiveIteratorIterator(newRecursiveDirectoryIterator('phar://'.$myArchive[0]), RecursiveIteratorIterator::CHILD_FIRST);
foreach ($fh as $splFileInfo){
echo file_get_contents($splFileInfo->getPathname());
}
没用。
我也试过这个
$p = new PharData($myArchive[0]);
foreach($p as $file)
{
echo "$file";
}
奇怪的是,似乎产生了一些结果,但tar文件的输出很奇怪:phar://C:/Zend/Apache2/htdocs/application/archives/Shaddox/Shaddox-1433274964.tar/C:
对于.tar.gz,输出是相同的,除了最后附加的.gz。
那么使用Phar查看.tar,.tar.gz和.tar.bzip2文件的内容是什么样的?
注意:$myArchive[0]
包含存档的绝对路径,使用zip库工作正常。