reihenweise aus txt auslesen

rubbl-die-katz

Grünschnabel
moin ihr leutz,

bin neu hier und auch nciht wirklich erfahren in php-sachen.
hab eine sehr simple frage:

ich hab eine art log-datei (.txt), die staendig aktualisiert und veraendert wird.
ich moechte nun jede zeile darin ueberpruefen. falls die eintraege nicht mit meinem vorgegebenen muster uebereinstimmen, will ich es mir als alert anzeigen lassen.

ich bin sicher, dass das eine leichte uebungsaufgabe ist... aber wie gesagt bin ich nicht sehr erfahren mit php-coding

danke im vorraus
#rubbl-die-katz
 
PHP:
$fp = fopen("datei.txt","r"); // Daten öffnen
while(!feof($fp)) { // Schleife, solange Zeilen drin sind...
	$zeile = fgets($fp,100); // ...nimmt er die ersten 100 Zeichen der Zeile...
	$inhalt = explode(" ",$zeile); // .. und nimmt sie auseinander nach Leerzeichen (" ") gesucht
}

Dann kannste mit $inhalt[0] ($inhalt[1]1, usw) die einzelnen Teile ansteuern.
Das explode kannste dir aber auch sparen, wenn du eh immer die gesamte Zeile haben möchtest.
 
Danke für die ausführliche Auskunft.

Ist es machbar nach einem bestimmten Wort zu suchen, zB "Fehler"? Und wenn er dieses gefunden hat, soll er einfach ein alert() ausgeben.
Falls ja, gibt es ein Problem mit der Tatsache, dass ich lediglich die zuletzt angefügte Zeile überprüfen möchte, und nicht das ganze Dokument.

Im Grunde genommen sollte es so ablaufen:

element.log aktualisiert sich
--> Funktion überprüft, ob in der neuen - unten angefügten - Zeile das Wort "Fehler" enthalten ist
--> falls ja, alert aufpoppen lassen
falls nein, nichts machen

und das wiederholt sich ständig... immer wenn eine neue Zeile hinzugefügt wurde...


Danke
#rubbl-die-katz
 
Zuletzt bearbeitet:
Wenn du weisst wie lang die Zeileneinträge sind, dann kannst du deinen filehandler auf das Ende der Datei setzen und die entsprechende Länge der Zeile zurückgehen. Anschließend die komplette Zeile in eine Variable lesen und testen ob das Wort Fehler enthalten ist. Funktioniert am besten mit
Code:
if(ereg("fehler",$variable))
{ echo "Gib Fehler aus";}
damit gehst du ans ende der Textdatei:
Code:
fseek($handle,SEEK_END);
und damit gehst du an den Anfang der Zeile zurück
Code:
while($tmp != "\n")
{
 $tmp = fseek($handle,-1,SEEK_CUR);
}

ach ja, damit speicherst du den inhalt der zeile dann in der Variable:
Code:
$variable = fgets($handle);

Hoffe ich konnte dir helfen. Wenn du mit meinem geistigen Ergüssen ned klarkommst, pn mir einfach und ich erklärs dir ausführlicher.
 
Zurück