Dynamiczne konwertowanie pliku .LOG

Witam,

Szukam jakiegoś rozwiązania które by automatycznie konwertowało plik TONE.LOG do jakieś bazy danych tak aby wybrane (spełniające określony warunek) informacje mogły od razu pokazać się na stronie w internecie.

Dokładnie chodzi o to że WinTone przetwarza “statusy” wysłane radiowo przez pojazdy floty na ciągi liter i zapisuje je w logu zaprezentowanym poniżej. I chciałbym te informacje umieścić na stronie internetowej i móc je odpowiednio filtrować oraz określać które wpisy chce publikować a które nie, najpiękniejsze by były dwa pliki dla admina z pełną prezentacja i użytkowników z węższą (ograniczającą się tylko to nazwy wozu i rodzaju ostatniego odebranego ststusu.)

WinTone 2.02 - Log File

Started 2010-02-04 12:33:41

=====================================================

2010-02-04 12:38:14 Duration : 0 Min 1 Sec Tones : DD

2010-02-04 12:38:15 Duration : 0 Min 1 Sec Tones : DD

2010-02-04 12:38:20 Duration : 0 Min 1 Sec Tones : DDD

2010-02-04 12:38:38 Duration : 0 Min 0 Sec Tones : 2D

2010-02-04 12:40:34 Duration : 0 Min 0 Sec Tones : 0A1

2010-02-04 12:40:53 Duration : 0 Min 0 Sec Tones : 9E

2010-02-04 12:40:55 Duration : 0 Min 0 Sec Tones : 23

2010-02-04 12:40:57 Duration : 0 Min 1 Sec Tones : 578

2010-02-04 12:48:46 Duration : 0 Min 1 Sec Tones : 2D

2010-02-04 12:55:43 Duration : 0 Min 0 Sec Tones : 457

2010-02-04 12:55:45 Duration : 0 Min 0 Sec Tones : 02

2010-02-04 12:56:46 Duration : 0 Min 0 Sec Tones : 87

2010-02-04 12:56:47 Duration : 0 Min 1 Sec Tones : 298E

2010-02-04 12:56:49 Duration : 0 Min 0 Sec Tones : 90

-----------------------------------------------------

- END of Log File - Terminated 02-04-10 12:56:49 pm

-----------------------------------------------------

http://php.net/manual/en/function.preg-match-all.php

Nie mogę sobie poradzić z preg_match_all ciągle albo wyrzuca jakiś błąd albo komunikat “Array” i nic więcej, a w sieci nie mogę znaleźć jakiegoś normalnego opisu tej funkcji. Czy mógłby ktoś sprawdzić dlaczego tak się dzieje? Chciałbym żeby skrypt przy pomocy preg_match_all ładował rekordy z tablicy odpowiadające założeniu do oddzielnej tablicy a pozostałe pomijał. Założenie to dowolny ciąg znaków ze zbioru {a-Z} położony pomiędzy symbolami “*”.

<?PHP


$plik = file('../TONE.LOG'); //wywoluje plik log do tablicy plik


$plik = array_reverse($plik); //odwraca wyswietlanie. Najnowsze wpisy na gorze a nie na dole.


	 echo '

'; //powoduje prezentacje pliku w formie linii a nie ciagu. Tworzy tablice?


	for( $x = 0 ; $x < 200; $x++ ) { // Pętla wykona się 200 razy (0...200)	


$string = $plik[$x]; //tabela podana do zmian


$patterns[0] = '/ Duration : (.) Min (.) Sec /'; //wzorzec

$patterns[1] = '/ Tones :/';


$replacements[0] = '';//efekt porzadany

$replacements[1] = 'Status :';

//Edycja tabeli


$patterns[522101] = '/522101/'; //wzorzec

$patterns[522102] = '/522102/';

$patterns[522103] = '/522103/';

$patterns[522104] = '/522104/';

$patterns[522105] = '/522105/';

$patterns[522106] = '/522106/';

$patterns[522107] = '/522107/';

$patterns[522108] = '/522108/';

$patterns[522109] = '/522109/';

$patterns[522110] = '/522110/';

$patterns[522100] = '/522100/';

//wozy


$replacements[522101] = '/999P00 XXXX XXX-2 *Awaria*/'; //podmianka

$replacements[522102] = '/999P00 XXXX XXX-2 *Potrzebna Pomoc*/';

$replacements[522103] = '/999P00 XXXX XXX-2 *Wyjazd*/';

$replacements[522104] = '/999P00 XXXX XXX-2 *Powrót*/';

$replacements[522105] = '/999P00 XXXX XXX-2 *W bazie*/';

$replacements[522106] = '/999P00 XXXX XXX-2 *Na miejscu*/';

$replacements[522107] = '/999P00 XXXX XXX-2 *Powrót uzupełnienie*/';

$replacements[522108] = '/999P00 XXXX XXX-2 *Koniec działań*/';

$replacements[522109] = '/999P00 XXXX XXX-2 *Żądanie rozmowy*/';

$replacements[522110] = '/999P00 XXXX XXX-2 *Inne zdarzenie*/';

$replacements[522100] = '/999P00 XXXX XXX-2 *Potwierdzenie*/';



preg_replace($patterns, $replacements, $string);


$subject = $plik[$x];


preg_match_all("([a-Z])*", $subject, $matches);

echo $matches;

}

?>