Tom: Text einlesen, verändern und in eine Datenbank speichern.

Beitrag lesen

Hello,

alles was in der Datenbank steht kann im Textfile gelöscht werden.

Also ist das Hauptproblem erst einmal die Zerlegung des Datensatzes in einzelne Felder.
Das geht im Prinzip ohne Regular Expressions mit Explode. Das wird vermutlich schneller sein, als die RegExp.

Do,28.05.2009,10:10:21,171 TCP_SPK2 <-E:<SPK2MFR1LQ001406635292       *******************>

$fh = fopen('filename','rb+');
if (!$fh) die('kann Datei nicht öffnen');
flock($fh, LOCK_SH);

$count = 0;

while (false !== ($line = fgets($fh, 4096))
{
    $_telegram = explode(':<', $line);

## 0: Do,28.05.2009,10:10:21,171 TCP_SPK2 <-E
    ## 1: SPK2MFR1LQ001406635292       *******************>      ==> Payload

$_header = explode(' ', $_telegram[0]);
    ## 0: Do,28.05.2009,10:10:21,171
    ## 1: TCP_SPK2                                ==>
    ## 2: <-E                                     ==> Richtung

$_date = explode (',',$_header[0]);
    ## 0: Do                                      ==> WoTag
    ## 1: 28.05.2009                              ==> Datum
    ## 2: 10:10:21                                ==> Zeit
    ## 3: 171                                     ==> ?

## -->   Ergebniselemente für die Datenbank escpapen und dann ein Insert durchführen.
    ##
    ##

echo ".";  ## Ich lebe noch.

}
fclose($fh);

Um die Payload weiter zu zerlegen ($_telegram[1]) müsstest Du etwas über die in ***** erlaubten Zeichen sagen.

Die Scriptlaufzeit muss sicherlich auf "unendlich" hochgestellt werden.
http://de3.php.net/manual/en/function.set-time-limit.php

Die Zeichencodierung müsste ggf. noch beachtet werden.

So ergibt sich ein Insert pro Datensatz in die SQL-Tabelle.
Das könnte man auch anders machen, wenn man stattdessen die Telegramm-Datei in eine eine CSV-Datei konvertiert.

Dann könnte man mit einem SQL-Import-Tool arbeiten.

Ich frage mich, wer sich derartige Formate (für die Telegrammdatei) ausdenkt. Das Glöeiche Problem hat man aber z.B. auch bei den Logs des Apache-Webserver bei Verwendung des Standard-LogFormat...
Da fragt man sich wirklich, wie weit die Leute manchmal denken...

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de