Hinweis, in diesem Beispielkontext wird die Ausgabe nicht korrekt angezeigt. Alle Zeilen sollen eigentlich vertikal aligniert sein. Das muss das CSS hier noch angepasst werden.
<?php
/**
* my_var_dump.php
*
* Funktion zur Anzeige der Werte von Variablen im Browser
*
*/
function my_var_dump($v)
{
// Ausgabe von var_dump über Output-Buffer in Variable einlesen
ob_start ();
var_dump ($v);
$content = ob_get_contents ();
ob_end_clean ();
// maximale Einrückung ermitteln
$m = 0;
preg_match_all ('#^(.*)=>#mU', $content, $stack);
$lines = $stack[1];
$indents = array_map ('strlen', $lines);
if ($indents) {
$m = max ($indents) + 1;
}
// Ausgabe von var_dump() an maximaler Einrückung ausrichten
$content = preg_replace (
'#^(.*)=>\\n\s+(\S)#eUm',
'"\\1" .str_repeat(" ", $m - strlen("\\1")>1 ? $m - strlen("\\1") : 1). "\\2"',
$content);
// bei Array-Strukturen öffnende Klammer { in neue Zeile
$content = preg_replace (
'#^((\s*).*){$#m',
"\\1\n\\2{",
$content);
echo '<pre>'. htmlentities($content). '</pre>';
}
my_var_dump($_SERVER);
?>