Hallo zusammen,
bin ganz neu hier und fange gerade an PHP zu lernen. Learning by doing dachte ich mir aber irgendwie komme ich nicht richtig weiter und hoffe auf eure hilfe.
Ich habe eine Textdatei und will diese auslesen zeile für zeile und dann ein Ergebnis erhalten pro UserX.
Der Aufbau der Datei sieht so aus:
Datum IP Adresse Bytes Verzeihnis mit Datei dann das kleine i und o das bedeutet i = incoming Traffic o = outgoing.
Sun Nov 25 04:54:16 2007 0 xxx.xxx.xxx.xxx 447930 /ftp/user1/send/BB005908/1_Bild_001.jpg b _ i r user1 ftp 0 * c
Sun Nov 25 04:54:17 2007 0 xxx.xxx.xxx.xxx 374523 /ftp/user8/send/BB005908/2_Bild_002.jpg b _ i r user8 ftp 0 * c
Sun Nov 25 04:54:18 2007 0 xxx.xxx.xxx.xxx 340449 /ftp/user6/send/BB005908/3_Bild_004.jpg b _ i r user6 ftp 0 * c
Sun Nov 25 04:54:20 2007 0 xxx.xxx.xxx.xxx 377439 /ftp/user3/send/BB005908/4_Bild_005.jpg b _ i r user3 ftp 0 * c
Sun Nov 25 04:54:21 2007 0 xxx.xxx.xxx.xxx 295895 /ftp/user2/send/BB005908/5_Bild_006.jpg b _ i r user2 ftp 0 * c
Sun Nov 25 04:54:22 2007 0 xxx.xxx.xxx.xxx 274998 /ftp/user1/send/BB005908/6_Bild_007.jpg b _ i r user1 ftp 0 * c
Sun Nov 25 04:54:23 2007 0 xxx.xxx.xxx.xxx 409051 /ftp/user3/send/BB005908/7_Bild_008.jpg b _ i r user3 ftp 0 * c
Sun Nov 25 04:54:24 2007 0 xxx.xxx.xxx.xxx 354890 /ftp/user2/send/BB005908/8_Bild_009.jpg b _ i r user2 ftp 0 * c
Nun möchte ich gerne nach user(x) und nach i,o und d sortiert eine Summe bilkden können.
Das Ergebnis soll etwa so aussehen:
User: xxx hat am 10.01.08 0.000244141 MBytes gesendet, 22221 MByte geholt
User: xxx hat am 10.01.08 2.38419e-07 GBytes gesendet, 21.7002 GByte geholt
Folgendes habe ich schon "geschafft" aber leider klappt es nicht richtig, stehe irgendwie auf dem Schlauch.
<html>
<head>
</head>
<body>
<?php
# Muss gesetzt werden da php nur 30 sekunden script ausfuehrt !!
set_time_limit(0);
# oeffnen der auszulesenden Datei
$fp = fopen("/var/log/xferlog","r");
if ($fp)
{
while(!feof($fp))
{
#Zeilenweise einlesen
$zeile = fgets($fp);
$meinArray = explode(" ",$zeile);
$user = array($meinArray[14]);
sort($user);
for ($user = $meinArray[14];
echo " $user[0]: $sum_array($meinArray[8])";
}
fclose($fp);
}
?>
</body>
</html>
Kann mir da jemand netterweise weiterhelfen.
Danke und Gruß Stefan
bin ganz neu hier und fange gerade an PHP zu lernen. Learning by doing dachte ich mir aber irgendwie komme ich nicht richtig weiter und hoffe auf eure hilfe.
Ich habe eine Textdatei und will diese auslesen zeile für zeile und dann ein Ergebnis erhalten pro UserX.
Der Aufbau der Datei sieht so aus:
Datum IP Adresse Bytes Verzeihnis mit Datei dann das kleine i und o das bedeutet i = incoming Traffic o = outgoing.
Sun Nov 25 04:54:16 2007 0 xxx.xxx.xxx.xxx 447930 /ftp/user1/send/BB005908/1_Bild_001.jpg b _ i r user1 ftp 0 * c
Sun Nov 25 04:54:17 2007 0 xxx.xxx.xxx.xxx 374523 /ftp/user8/send/BB005908/2_Bild_002.jpg b _ i r user8 ftp 0 * c
Sun Nov 25 04:54:18 2007 0 xxx.xxx.xxx.xxx 340449 /ftp/user6/send/BB005908/3_Bild_004.jpg b _ i r user6 ftp 0 * c
Sun Nov 25 04:54:20 2007 0 xxx.xxx.xxx.xxx 377439 /ftp/user3/send/BB005908/4_Bild_005.jpg b _ i r user3 ftp 0 * c
Sun Nov 25 04:54:21 2007 0 xxx.xxx.xxx.xxx 295895 /ftp/user2/send/BB005908/5_Bild_006.jpg b _ i r user2 ftp 0 * c
Sun Nov 25 04:54:22 2007 0 xxx.xxx.xxx.xxx 274998 /ftp/user1/send/BB005908/6_Bild_007.jpg b _ i r user1 ftp 0 * c
Sun Nov 25 04:54:23 2007 0 xxx.xxx.xxx.xxx 409051 /ftp/user3/send/BB005908/7_Bild_008.jpg b _ i r user3 ftp 0 * c
Sun Nov 25 04:54:24 2007 0 xxx.xxx.xxx.xxx 354890 /ftp/user2/send/BB005908/8_Bild_009.jpg b _ i r user2 ftp 0 * c
Nun möchte ich gerne nach user(x) und nach i,o und d sortiert eine Summe bilkden können.
Das Ergebnis soll etwa so aussehen:
User: xxx hat am 10.01.08 0.000244141 MBytes gesendet, 22221 MByte geholt
User: xxx hat am 10.01.08 2.38419e-07 GBytes gesendet, 21.7002 GByte geholt
Folgendes habe ich schon "geschafft" aber leider klappt es nicht richtig, stehe irgendwie auf dem Schlauch.
<html>
<head>
</head>
<body>
<?php
# Muss gesetzt werden da php nur 30 sekunden script ausfuehrt !!
set_time_limit(0);
# oeffnen der auszulesenden Datei
$fp = fopen("/var/log/xferlog","r");
if ($fp)
{
while(!feof($fp))
{
#Zeilenweise einlesen
$zeile = fgets($fp);
$meinArray = explode(" ",$zeile);
$user = array($meinArray[14]);
sort($user);
for ($user = $meinArray[14];
echo " $user[0]: $sum_array($meinArray[8])";
}
fclose($fp);
}
?>
</body>
</html>
Kann mir da jemand netterweise weiterhelfen.
Danke und Gruß Stefan