Lite klurigheter.... Kört fast m.a.o.

PHP kan diskuteras här.

Moderatorer: Nille, Minime

Användares profilbild
MDKDIO
Allsmäktig
Poster: 240
Blev medlem: 21 Apr 2005 08:24
Ort: Bollnäs

Lite klurigheter.... Kört fast m.a.o.

Posta av MDKDIO » 02 Feb 2017 21:50

Yay! Endast 6 år sedan senaste posten (på ett ungefär..)

Scenario:
Huvudsidans sökfunktion för Slackware rel. paket.
Current
14.2 etc..

Jag började på följande:
1. Läsa in PACKAGES.TXT filen från packages.slackware.com
t.ex. h**p://mirror.onet.pl/pub/mirrors/slackware/slackware64-14.2/PACKAGES.TXT

2. Tog bort det mesta av texten, så just nu har jag en mängd med rader.
ConsoleKit2-1.0.0-x86_64-3.txz
Cython-0.23.4-x86_64-1.txz
o.s.v.

Dock stötte jag på ett problem med att filerna inte följer något standard schema, typ
namn-version-arch-rev.txz
utan en del filer har _ + @ och annat

Vad jag vill få till är:
ConsoleKit2 1.0.0 x86_64 3
(kan iofs ta bort x86_64, då det inte behövs).


Följande kod kör jag nu: Med viss hjälp från minime (Tusen tack!)

Kod: Välj alla

<?php

$lines = file('PACKAGES.TXT');  // Lokal gammal fil från 2015

foreach($lines as $line) {

if($line == "\n") {
   $line = "";
} else {
if($line != "") {
  $line = "$line<br />";
 }
}
//echo "$line";
$buffer = $line;

list($a,$b) = explode("PACKAGES.TXT;",$buffer);
list($a,$c) = explode("PACKAGE NAME:",$buffer);

$file_date = "$b";
$file = "$c";

$pkg = "$file";
list($p,$p1,$p2,$p3,$p4,$p5) = explode("-",$pkg);

echo $file_date;
echo $file;
}
fclose($lines);
?>
Vilket ger:

Thu Mar 5 22:08:24 UTC 2015
ConsoleKit-0.4.5-x86_64-1.txz
GConf-3.2.6-x86_64-1.txz
M2Crypto-0.21.1-x86_64-2.txz
MPlayer-1.1_20130819-x86_64-3.txz
ModemManager-1.0.0-x86_64-2.txz
NetworkManager-0.9.8.8-x86_64-1.txz
PyQt-4.9.6-x86_64-1.txz
QScintilla-2.6.1-x86_64-4.txz
Thunar-1.6.3-x86_64-2.txz
a2ps-4.14-x86_64-5.txz
aaa_base-14.1-x86_64-1.txz
aaa_elflibs-14.1-x86_64-4.txz
aaa_terminfo-5.8-x86_64-1.txz
aalib-1.4rc5-x86_64-5.txz
acct-6.5.4-x86_64-2.txz
acl-2.2.51-x86_64-1.txz
acpid-2.0.19-x86_64-1.txz
akonadi-1.9.2-x86_64-1.txz
alpine-2.20-x86_64-1.txz
alsa-lib-1.0.27.2-x86_64-1.txz

o.s.v.
Slackware 64-bit 14.2 x 1 (xfce) (desktop)
Xubuntu 16.04 64-Bit x 1 (Laptop)
(Äntligen) Slackware 14.2 (xfce) (MediaPC)
Ubuntu 14.04 LTS server.
+ Div annat Gott & Blandat :)
Linux Counter. User 267939

Skriv Svar