Zählscript
Michael W.
- php
0 Harry0 Michael W.0 Harry0 Michael W.0 Harry
hallo,
wie könnte den in php ein zähl script aussehen wenn ich folgende datei habe (die auch nach einer auswertung enstanden ist):
USER=hossil
Processor: AMD Athlon(tm) (Thunderbird)-1041
CPU Clock Speed: 1041 MHz
Extended Memory: 127 MB (64 MB Free)
C: 19530 MB 1600 MB 17 GB RWZ Fixed Disk
USER=baciaba
Processor: Intel Celeron-941
CPU Clock Speed: 943 MHz
Extended Memory: 111 MB (64 MB Free)
C: 19530 MB 766 MB 18 GB RWZ Fixed Disk
USER=breitma
Processor: AMD Athlon(tm) (Thunderbird)-1041
CPU Clock Speed: 1041 MHz
Extended Memory: 127 MB (64 MB Free)
C: 19530 MB 911 MB 18 GB RWZ Fixed Disk
USER=christos
Processor: Intel CeleronA-364
CPU Clock Speed: 364 MHz
Extended Memory: 127 MB (64 MB Free)
C: 8040 MB 1013 MB 7027 MB RWZ Fixed Disk
USER=cottonla
Processor: AMD Athlon(tm) (Thunderbird)-1043
CPU Clock Speed: 1043 MHz
Extended Memory: 127 MB (64 MB Free)
C: 19530 MB 1191 MB 17 GB RWZ Fixed Disk
USER=duhanal
Processor: AMD Athlon(tm) (Thunderbird)-1043
CPU Clock Speed: 1043 MHz
Extended Memory: 127 MB (64 MB Free)
C: 19530 MB 755 MB 18 GB RWZ Fixed Disk
.
.
.
ich möchte jetzt das der gesamte text sortiert wird - ungefähr so:
Processoren:
Processor: AMD Athlon(tm) (Thunderbird)-1041 | 2
Processor: Intel Celeron-941 | 1
Processor: Intel CeleronA-364 | 1
Processor: AMD Athlon(tm) (Thunderbird)-1043 | 2
CPU:
CPU Clock Speed: 1041 MHz | 2
CPU Clock Speed: 943 MHz | 1
CPU Clock Speed: 364 MHz | 1
CPU Clock Speed: 1043 MHz | 2
Extended Memory: 127 MB (64 MB Free) | 5
Extended Memory: 111 MB (64 MB Free) | 1
ist das möglich ? wenn ja wie ?
Danke
Hoi !
<?php
$dat = file("datei.txt");
$dat2 = Array();
$dat3 = Array();
for($i=0, $j=count($dat); $i<$j; $i++)
{ if(trim($dat[$i])!=""))
{ $x = md5($dat[$i]);
if($dat2[$x]=="")
{ $dat2[$x] = 0;
$dat3[$x] = $dat[$i]; }
$dat2[$x]++; } }
while(list($k, $v) = each($dat2))
echo $dat3[$k]." | ".$v;
?>
So ungefähr kannst Du das machen.
Es gibt noch weitere Möglichkeiten, ohne md5. Die würden dann wohl meistens mit in_array funktionieren. Was geschwindigkeitstechnisch besser ist darfst Du selber rausfinden ;-)
Wer Syntax-Fehler findet darf sie behalten und/oder korrigieren ;)
Ciao,
Harry
<?php
$dat = file("datei.txt");
$dat2 = Array();
$dat3 = Array();
for($i=0, $j=count($dat); $i<$j; $i++)
{ if(trim($dat[$i])!=""))
{ $x = md5($dat[$i]);
if($dat2[$x]=="")
{ $dat2[$x] = 0;
$dat3[$x] = $dat[$i]; }
$dat2[$x]++; } }
while(list($k, $v) = each($dat2))
echo $dat3[$k]." | ".$v;
?>
ausgabe:
USER=hossil | 1Processor: AMD Athlon(tm) (Thunderbird)-1041 | 9CPU Clock Speed: 1041 MHz | 9Extended Memory: 127 MB (64 MB Free) | 23C: 19530 MB 1600 MB 17 GB RWZ Fixed Disk | 2USER=baciaba | 1Processor: Intel Celeron-941 | 1CPU Clock Speed: 943 MHz | 1Extended Memory: 111 MB (64 MB Free) | 1C: 19530 MB 766 MB 18 GB RWZ Fixed Disk | 1USER=breitma | 1C: 19530 MB 911 MB 18 GB RWZ Fixed Disk | 1USER=christos | 1Processor: Intel CeleronA-364 | 1CPU Clock Speed: 364 MHz | 1C: 8040 MB 1013 MB 7027 MB RWZ Fixed Disk | 1USER=cottonla | 1Processor: AMD Athlon(tm) (Thunderbird)-1043 | 8CPU Clock Speed: 1043 MHz | 8C: 19530 MB 1191 MB 17 GB RWZ Fixed Disk | 1USER=duhanal | 1C: 19530 MB 755 MB 18 GB RWZ Fixed Disk | 1USER=firlebe | 1C: 19530 MB 800 MB 18 GB RWZ Fixed Disk | 1USER=fittkahe | 1Processor: Intel Celeron-695 | 1CPU Clock Speed: 693 MHz | 1Extended Memory: 63 MB (63 MB Free) | 2C: 9717 MB 1130 MB 8587 MB Fixed Disk | 1USER=gemmecel | 1C: 19530 MB 960 MB 18 GB RWZ Fixed Disk | 1USER=genocash | 1Processor: Intel Pentium-167 | 1CPU Clock Speed: 167 MHz | 1Extended Memory: 31 MB (31 MB Free) | 1C: 1220 MB 271 MB 949 MB Fixed Disk | 1USER=glockka | 1Processor: Intel CeleronA-334 | 1CPU Clock Speed: 334 MHz | 1Extended Memory: 95 MB (64 MB Free) | 1C: 4102 MB 741 MB 3361 MB RWZ Fixed Disk | 1USER=goettejo | 1C: 4102 MB 1531 MB 2571 MB RWZ Fixed Disk | 1USER=haertika | 1Processor: AMD Duron(tm)-782 | 1CPU Clock Speed: 782 MHz | 1C: 19452 MB 856 MB 18 GB RWZ Fixed Disk | 1USER=hergenul | 1Processor: AMD Athlon(tm) (undistinguished model)-1244 | 2CPU Clock Speed: 1244 MHz | 2C: 19530 MB 15 GB 3907 MB RWZ Fixed Disk | 1USER=hossil | 1USER=jeckelwi | 1C: 19530 MB 975 MB 18 GB RWZ Fixed Disk | 1USER=jeromijo | 1C: 19530 MB 751 MB 18 GB RWZ Fixed Disk | 1USER=klinglwo | 1C: 19530 MB 1004 MB 18 GB RWZ Fixed Disk | 1USER=kolmarhe | 1Processor: AMD Duron(tm)-834 | 1CPU Clock Speed: 834 MHz | 1C: 9717 MB 1818 MB 7899 MB RWZ Fixed Disk | 1USER=kowalspa | 1Processor: AMD Athlon(tm) (undistinguished model)-1037 | 1CPU Clock Speed: 1037 MHz | 1C: 6138 MB 1953 MB 4185 MB RWZ Fixed Disk | 1USER=kuehnst | 1Processor: Intel P8-1614 | 2CPU Clock Speed: 1614 MHz | 2Extended Memory: 511 MB (64 MB Free) | 1C: 19530 MB 2241 MB 16 GB RWZ Fixed Disk | 1USER=malikma | 1C: 19083 MB 1345 MB 17 GB RWZ Fixed Disk | 1USER=moscheha | 1C: 19530 MB 813 MB 18 GB RWZ Fixed Disk | 1USER=quasdocl | 1Extended Memory: 12 MB (64 MB Free) | 1C: 39070 MB 3714 MB 34 GB RWZ Fixed Disk | 1USER=staudtad | 1C: 19444 MB 777 MB 18 GB RWZ Fixed Disk | 1USER=strohsje | 1Processor: AMD Athlon(tm) (undistinguished model)-1268 | 1CPU Clock Speed: 1290 MHz | 1C: 7978 MB 2026 MB 5952 MB RWZ Fixed Disk | 1USER=supervisor | 1Processor: Intel Celeron-697 | 1CPU Clock Speed: 697 MHz | 1Extended Memory: 64 MB (64 MB Free) | 1C: 28602 MB 841 MB 27 GB RWZ Fixed Disk | 1USER=uhlwi | 1Processor: AMD Athlon(tm) (undistinguished model)-1451 | 1CPU Clock Speed: 1451 MHz | 1Extended Memory: 8201 KB (64 MB Free) | 1C: 8017 MB 1727 MB 6290 MB RWZ Fixed Disk | 1USER=uniuser | 1D: 11496 MB 1564 MB 9932 MB Fixed Disk | 1USER=w2kuser | 1C: 4102 MB 1523 MB 2579 MB RWZ Fixed Disk | 1USER=winuser | 1C: 39061 MB 471 MB 37 GB RWZ Fixed Disk | 1USER=woelkmi | 1C: 19530 MB 3182 MB 15 GB RWZ Fixed Disk | 1
hhhhhhhhhhhmmmmmmmmmmmmmmmm
da müssten wohl noch ein paar absätze rein und die suche würde ich auch gerne beschränken
user und fixed disk brauchen wir in dem fall nicht.
Danke
n'Abend»» ausgabe:
USER=hossil | 1Processor: AMD Athlon(tm) (Thunderbird)-1041 [usw. blabla]
da müssten wohl noch ein paar absätze rein und die suche würde ich auch gerne beschränken
Dann mußt Du halt die Zeile noch etwas modifizieren:
echo $dat3[$k]." | ".$v;
z.B. echo $dat3[$k]." | ".$v."<br />\n";
user und fixed disk brauchen wir in dem fall nicht.
Dann erweiter einfach den Algorithmus so, daß er sie aussortiert. Dazu wirst Du halt den Teil "{ if(trim($dat[$i])!=""))" mit ein paar regulären Ausdrücken erweitern müssen.
Ciao,
Harry
Dann erweiter einfach den Algorithmus so, daß er sie aussortiert. Dazu wirst Du halt den Teil "{ if(trim($dat[$i])!=""))" mit ein paar regulären Ausdrücken erweitern müssen.
kannst du mir ein beispiel geben ?
Tag
Dann erweiter einfach den Algorithmus so, daß er sie aussortiert. Dazu wirst Du halt den Teil "{ if(trim($dat[$i])!=""))" mit ein paar regulären Ausdrücken erweitern müssen.
kannst du mir ein beispiel geben ?
$a = trim($dat[$i]);
if($a!="" && !preg_match("/[1]*user/i", $a))
...
Dann werden auch alle Zeichenketten aussortiert, in denen vor dem "=" irgendwo "user" vorkommt.
Ciao,
Harry
^= ↩︎
hallo,
die ausgabe gefällt mir so irgendwie nicht.
vorallem da die begriffe nicht geoordnet sind:
9 | Processor: AMD Athlon(tm) (Thunderbird)-1041
9 | CPU Clock Speed: 1041 MHz
23 | Extended Memory: 127 MB (64 MB Free)
1 | Processor: Intel Celeron-941
1 | CPU Clock Speed: 943 MHz
1 | Extended Memory: 111 MB (64 MB Free)
1 | Processor: Intel CeleronA-364
1 | CPU Clock Speed: 364 MHz
8 | Processor: AMD Athlon(tm) (Thunderbird)-1043
8 | CPU Clock Speed: 1043 MHz
1 | Processor: Intel Celeron-695
1 | CPU Clock Speed: 693 MHz
2 | Extended Memory: 63 MB (63 MB Free)
1 | Processor: Intel Pentium-167
1 | CPU Clock Speed: 167 MHz
1 | Extended Memory: 31 MB (31 MB Free)
1 | Processor: Intel CeleronA-334
1 | CPU Clock Speed: 334 MHz
1 | Extended Memory: 95 MB (64 MB Free)
1 | Processor: AMD Duron(tm)-782
1 | CPU Clock Speed: 782 MHz
2 | Processor: AMD Athlon(tm) (undistinguished model)-1244
2 | CPU Clock Speed: 1244 MHz
1 | Processor: AMD Duron(tm)-834
1 | CPU Clock Speed: 834 MHz
1 | Processor: AMD Athlon(tm) (undistinguished model)-1037
1 | CPU Clock Speed: 1037 MHz
und so weiter
wenn die geoordnet wären und absätze hätten wäre das nch viel besser. und man müsste den suchbegriff eingeben können.
Danke