1 1 Stimme

PHP: Ausgabe eines Scripts in Variable schreiben

Tutorial von Stefan Trost | 02.02.2015 um 23:34 Uhr

In diesem Tutorial möchte ich euch zeigen, wie ihr die Ausgabe eines beliebigen PHP-Scripts nicht an den Browser sendet sondern stattdessen in eine Variable schreibt. Eine Anwendungsmöglichkeit ergibt sich zum Beispiel immer dann, wenn wir eine Skriptausgabe per E-Mail versenden oder auf sonstige Weise weiterverarbeiten möchten (zum Beispiel könnte man die Output-Ergebnisse in eine Datenbank schreiben oder sich eine Benachrichtigung mit der Ausgabe eines Cronjobs per Mail zustellen lassen).

Wir nutzen für diese Zwecke Output Buffering, dass sich mit der Funktion ob_start() starten lässt. Nach dem Aufruf von ob_start() wird die Ausgabe des Skripts nicht mehr gesendet sondern stattdessen in einem internen Buffer gespeichert, indem wir auslesen können.

Einfaches Beispiel

Schauen wir uns ein kleines Beispiel dazu an.

// Output Buffering starten
ob_start(); 
 
// eine Ausgabe erzeugen 
echo "ABC";  
  
// Inhalt des Buffers auslesen
$output = ob_get_contents();  

// Output Buffering beenden
ob_end_clean(); 

// Inhalt der Variable ausgeben
echo $output; // ABC

Zunächst starten wir das Output Buffering mit ob_start() und lassen das Skript etwas ausgeben (hier "ABC"). Mit der Funktion ob_get_contents() lässt sich der interne Buffer auslesen, wir speichern den Inhalt des Buffers in die Variable $output. Anschließend beenden wir das Output Buffering mit ob_end_clean(). Ab diesem Zeitpunkt kann das Skript wieder normale Ausgaben machen, wir geben die Variable $output aus.

Statt der Ausgabe können wir den Inhalt der Variable natürlich auch weiterverarbeiten oder per E-Mail versenden, hier soll uns aber dieses einfache Beispiel genügen.

Weitere Funktionen

Die Länge des Output Buffers kann man übrigens mit der Funktion ob_get_length() bestimmen und mit ob_clean() lässt sich der Output Buffer löschen, bevor das Output Buffering beendet wurde - zum Beispiel wenn man mit mehreren Variablen arbeiten möchte. Wenn wir statt ob_end_clean() die Funktion ob_end_flush() verwenden, wird das Output Buffering zwar auch beendet, der Output Buffer aber trotzdem abgeschickt - so lässt sich die Ausgabe sowohl in eine Variable speichern als auch im Browser anzeigen.

AntwortenPositivNegativ

Über den Autor

Avatar AutorSoftware von Stefan Trost finden Sie auf sttmedia.de. Benötigen Sie eine individuelle Software nach Ihren eigenen Wünschen? Schreiben Sie uns: sttmedia.de/kontakt
Profil anzeigen | Nachricht

 

Ähnliche Themen

PHP: Kalenderwoche ermitteln
Tutorial | 0 Kommentare

Wichtiger Hinweis

Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.