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

时间:2017-06-18 05:11:41

标签: php deb cydia

我需要获取一个来自我拥有的Cydia debian repo的Packages文件(Packages.gz)中所有包的名称和版本,我正在尝试找到在PHP中执行此操作的最佳方法。

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

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

1 个答案:

答案 0 :(得分:1)

您可以使用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;
    }
}