Siechfred: Log-String parsen/auswerten

Beitrag lesen

Tag benni.

Nov 9 22:22:34 server kernel: BANDWIDTH_IN:IN=ppp0 OUT=eth0 SRC=207.46.2.59 DST=192.168.0.1 LEN=48 TOS=0x00 PREC=0x00 TTL=118 ID=30167 PROTO=TCP SPT=1863 DPT=3026 WINDOW=65247 RES=0x00 ACK PSH URGP=0
Ich möchte aus diesem String mit PHP die einzelnen Werte, also immer das, was hinter dem = steht, auslesen und in einer jeweils spezifischen Variable speichern (um das ganze dann in eine MySQL-Tabelle zu schreiben). Also das ich zum Beispiel in der Variable $len den Wert 48 stehen hab. Wie kriege ich das hin?

Das dürfte zu Fuß überhaupt kein Problem sein. Hole dir mit Hilfe von strrchr alles ab "IN=", zerlege den Reststring mit Hilfe von explode (der Trenner dürfte wohl ein Whitespace sein), gehe diesen Array Element für Element durch, teile den jeweiligen String in Name/Wert und ordne den Wert in Abhängigkeit vom Namen den gewünschten Variablen zu.

Ein regulärer Ausdruck wäre auch möglich, damit könntest du das in einem Rutsch erledigen. Interessant dürfte hier die Funktion preg_match sein.

Siechfred