使用 PHP 获取 packages.gz 文件中所有包的名称和版本的最佳方法是什么?

What's the best way to get name and version of all packages in a packages.gz file with PHP?

我需要从我拥有的 Cydia debian 存储库中获取 Packages 文件 (Packages.gz) 中所有软件包的名称和版本,我正在尝试找到最佳方法PHP。

我是 PHP 的新手,我在为自己做一个小项目时学习它,但一直找不到我能理解的例子。我在搜索时发现了这个,它得到了我需要的东西,但它不是 PHP.

awk -F": " ' /^Package/{p=;getline;v=;getline;f=;ary[p"\n"v"\n"]} END{for (x in ary) print x}' file

您可以使用 PHP 中的 ZLib 函数直接读取文件...

<?php 
error_reporting ( E_ALL );
ini_set ( 'display_errors', 1 );

$file = gzopen('Packages.gz', 'r');
while ( $line = gzgets($file))  {
    if ( substr($line, 0,8) == 'Package:' ||
            substr($line, 0,8) == 'Version:')    {
        echo $line;
    }
}