2017-06-18 41 views
-1

我需要获取来自Cydia debian仓库的Packages文件(Packages.gz)中所有软件包的名称和版本,我试图找到在PHP中执行此操作的最佳方法。什么是使用PHP获取packages.gz文件中所有软件包的名称和版本的最佳方式?

我是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

快速肮脏的方式,使用'系统()'或'EXEC()'。 – codekaizer

+0

谢谢你可能是唯一一个说什么的!现在很难得到帮助。我只需要一个如何在PHP中完成的示例。我可以打印整个文件,但不知道如何获取名称和版本。 – RKO1195

回答

1

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

<?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; 
    } 
} 
+0

非常感谢一群我会尝试!我感谢你的时间和帮助也回答 – RKO1195

+0

谢谢奈杰尔我刚刚学到了一些新的东西:)我不知道你可以阅读gz文件,而不使用gzdecode是我一直在使用。我见过的所有东西都发现在搜索和东西上。非常感谢你! – RKO1195

+0

这是这个网站的用途,很高兴听到你的学习(而不只是复制过去像一些:) –

相关问题