2017-06-18 40 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

這是這個網站的用途,很高興聽到你的學習(而不只是複製過去像一些:) –

相關問題