22 Stimmen

PHP: Ausgabe von var_dump() in String schreiben

Frage von Gast | Letztes Update am 01.07.2021 | Erstellt am 01.03.2014

Um den Inhalt einer Variable in PHP anzeigen zu lassen, kann man ja var_dump() benutzen. Also zum Beispiel einfach "var_dump($arr);" schreiben, um den Inhalt vom Array $arr anzeigen zu lassen.

Leider wird das Ergebnis von var_dump() immer sofort ausgegeben und man kann das Resultat nicht einfach als String speichern um es später ausgeben zu können.

Aber genau dafür suche ich aktuell eine Funktion. Gibt es also irgendeine Möglichkeit, so etwas wie var_dump() auszuführen und das Ergebnis dann in einer Variable (in einem String) zu speichern?

AntwortenPositivNegativDatumStimmen
33 Stimmen

Wenn du die Funktion print_r() benutzt, und als zweiten Parameter "true" übergibst, wird die Ausgabe von print_r() nicht ausgegeben sondern als String zurückgegeben:

$arr = array(1,2,3);
$str = print_r($arr, true);

Die Informationen von print_r() sind zwar nicht so ausführlich wie die von var_dump(), aber vielleicht hilft dir das schon weiter.
01.03.2014 um 19:21

AntwortenPositiv Negativ
22 Stimmen

Wenn du genau die Ausgabe von var_dump() haben willst, kannst du Output-Buffering verwenden:

ob_start();
var_dump($someVar);
$str = ob_get_clean();

Mit ob_start() startest du das Output-Buffering. Damit erfolgt keine Ausgabe mehr im Browser unterdessen wird alles zwischengespeichert. Die Ausgabe jedes Befehls, den du danach ausführst, landet in dem Buffer. So im Beispiel auch die Ausgabe von var_dump(). Anschließend kannst du den gespeicherten Buffer mit ob_get_clean() auslesen und in einer Variable speichern.

Theoretisch kann man das alles noch in eine Funktion auslagern:

function var_dump_tostring($var) {
  ob_start();
  var_dump($var);
  return ob_get_clean();
}

Dann ist es ausreichend, diese Funktion mit der Variable aufzurufen.
01.03.2014 um 21:28

AntwortenPositiv Negativ
00 Stimmen

Alternativ schlage ich noch die Funktion var_export vor. Diese arbeitet so ähnlich wie print_r und gibt validen PHP Code zurück, der die übergebene Variable beschreibt.

$arr = array(1,2,3);
$str = var_export($arr, true);

Ähnlich wie bei print_r kann man als zweiten Parameter "true" übergeben und erhält dadurch eine Rückgabe des Ergebnisses als String.
03.03.2014 um 17:05

AntwortenPositiv Negativ
00 Stimmen

Unerwähnt bleiben sollte sicherlich auch nicht der klassische Weg, den Inhalt des Arrays per Hand auszugeben:

foreach($arr AS $key => $value) {
  echo "$key => $value <br>";
}

Zugegebenerweise sind natürlich alle anderen bisher vorgeschlagenen Lösungen einfacher.
04.03.2014 um 20:18

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

PHP: Kalenderwoche ermitteln

Tutorial | 2 Kommentare

Wichtiger Hinweis

Bitte beachten Sie: 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.