Hello,
Das gewünschte Ergebnis soll dann folgendes sein:
Array
(
[ServerAddress] => www.irgendwas.de
[IP] => 194.97.107.174
[Date] => 14/Sep/2005:00:00:41 +0200
[Method] => GET
[Request] => /style.php?frame=true
[Protocol] => HTTP/1.0
[ServerCode] => 200
[Bytes] => 95
[Referer] => -
)
Warum schaust Du Dir dann nicht die Stringfunktionen von PHP an?
Und wie fanelf.de schon schrieb, ist explode() für das erste Auseinandernehmen an den Leerzeichen die passende Funktion.
$_datenfelder = explode(' ',rtrim($zeile));
Dann umstapeln in ein assoziatives Array.
- Domain -
- IP -
- User einzelnen Strich entfernen
- PW einzelnen Strich entfernen
- Datum, Zeit führende linke eckige Klammer entfernen, splitten
- Zeitzone anhängende rechte eckige Klammer entfernen
- Method Führendes Anführungszeichen entfernen
- URi -
- Sheme, Version anhängende rechte Klammer entfernen, splitten
- Status -
- Bytes sent -
- Referer umschließende Anführungszeichen entfernen
Das geht zum Besipiel mit http://de2.php.net/manual/de/function.array-combine.php, wenn man sich die Spaltenbezeichnungen einmal als Array festgelegt hat.
Und dann mittels der Stringfunktionen die empfohlenen Korrekturen über die Feldnamen durchführen.
foreach($_spalten as $spaltenname => $wert)
{
$func = 'f_'.$spaltenname;
if (function_exists($func))
{
$_spalten($spaltenname) = $func($wert);
}
}
Nun brauchst Du nur noch die Korrekturfunktionen zu definieren:
#----------------------------------
function f_User($wert)
{
if ($wert == '-') return '';
}
#----------------------------------
function f_Datum($wert)
{
if (substr($wert,0,1) == '[')
{
$date = substr($wert,1,-8);
$time = substr($wert,-8);
$date_split = explode('/',$date);
$time_split = explode(':',$time);
$ret = array('date' => $date_split, 'time' => $time_split);
}
else
{
return false;
}
return $ret;
}
#----------------------------------
usw.
Das ist eine gut Übung für Dich, um die String- und Arrayfunktionen kennenzulernen, bevor Du dich an Regular Expressions heranwagst.
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau