Ausgebepuffer in Datei umleiten
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
arbeitsspeicher
ausgeben
befehl
befehlen
beide funktionen
beitrag
datei
einstellung
error
fehlermeldung
handbuch
leere bildschirm
log
manual
meldung
nachteil
schwerwiegende fehler
set
versenkung
bliche fehlermeldung
-
Ihr kennt sicher den Befehl flush(), welcher den gesammten Ausgabepuffer an den Browser schickt und aus dem Arbeitsspeicher löscht.
Mit dem Befehl fflush() kann man dasselbe für Datei-Ausgaben (etwa fwrite(), fput() etc) bewirken.
Wie kann ich nun aber den gesammten Ausgabepuffer (mit echo... Error-Meldungen etc.) anstatt an den Browser an eine Datei senden? Mit echos ist das einfacher: Ich weise alle Ausgaben einer Variable zu und schreibe diese in eine Datei. Wie sieht es aber mit Fehlermeldungen aus? Kann ich die einer Variablen zuweisen? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Huch, beide Funktionen erscheinen mir wiedermal typisch für PHP. Irgendwann wo abgekuckt und eingebaut und dann stillschweigend in der Versenkung verschwunden und nur deshalb im System behalten, weil man ja abwärtskatikombel bleiben muss.
Ich würde dir besser Folgendes vorschlagen:
<?php ob_start(); // hier steht dein bisheriges ganzes Script; $output = ob_get_clean(); file_put_contents($zieldatei, $output); ?>
Das schreibt alles in die Datei, auch Fehlermeldungen, wenn sie so eingestellt sind, dass sie in der Browserausgabe erscheinen sollten. Fehlermeldungen, die nur ins Error-Log kommen, fängt man so allerdings nicht ein. Dieser Fall kommt aber eher selten vor.
Falls du aber nur die Fehlermeldungen einfangen willst, musst du dir einen Error-Handler basteln. Der hat den Nachteil, dass er schwerwiegende Fehler allerdings nicht einfängt. Da kommt trotzdem nur die übliche Fehlermeldung oder der leere Bildschirm (je nach Einstellung von error_reporting() ...).
Wie man Error-Handler selbst bastelt, steht im Handbuch auf der Seite zur passenden Funktion:
http://de.php.net/manual/de/function.set-error-handler.php
Die anderen ob_xxx()-Befehle:
http://de.php.net/manual/de/ref.outcontrol.php
Beitrag geaendert: 30.3.2007 19:07:19 von alopex -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage