Log-Datei führen
Harald
- php
0 Felix Riesterer
0 Tom
0 Chris©
Hi!
Ich würd gerne ein Logdatei führen, daher meine Frage:
Wie kann ich bei einer txt-Datei immer ganz am Ende noch eine Zeile anfügen?
danke
Harald
Hello leiber Felix,
Wie kann ich bei einer txt-Datei immer ganz am Ende noch eine Zeile anfügen?
was hast Du an fopen() nicht verstanden?
verlinke in Zukunft bitte besser die englischen Manualseiten. Die sind einfach vollständiger.
http://de2.php.net/manual/en/function.fopen.php
Hier werden alle Openmodi genannt.
Allerdings leider auch nicht ausführlich beschrieben, was 'a' und 'a+' bewirken.
Liebe Grüße
Tom vom Berg
Hallo,
Ich würd gerne ein Logdatei führen, daher meine Frage:
Wie kann ich bei einer txt-Datei immer ganz am Ende noch eine Zeile anfügen?
Indem Du diese Datei als klassische Textdatei öffnest.
Die meisten Betriebssysteme haben noch einen, antiquierten, aber nicht obsoleten Modus dafür. Dieser wird bei PHP mit
$fh = fopen($dateiname,'a');
angesprochen. Jede Schreiboperationn mit fwrite() landet nun immer hinter dem aktuellen Ende der Datei. Jede einzelen Schreibanweisung wird vom OS atomar behandelt, kann also nicht zu einer Race Condition führen.
Dies gilt natürlich nicht, wenn in einer Schleife geschrieben wird. Dann könnten andere Prozesse zwischen einem Durchlauf und dem nächsten dazwischenhuschen.
Man kann den Satzzeiger nicht selber verstellen, um zu schreiben.
Wenn man mit 'a+' öffnet, kann man ihn aber verstellen, um zu lesen.
Bei der nächsten Schreiboperation wird er vor dem Schreibvorgang automatisch wieder an das Ende gestellt. Das war bei älteren PHP-Versionen auf Linux nicht richtig implementiert. Irgendwann ab Version 4.2 oder 4.3 hat es dann aber auch auf Linux funktioniert.
Es gibt natürlich noch Alternativen. Die sind aber komplizierter.
LG
Chris©