kostenloser Webspace werbefrei: lima-city


Ausgebepuffer in Datei umleiten

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    johny7

    johny7 hat kostenlosen Webspace.

    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?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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
  4. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!