Alle Variablen ausgeben lassen

cobraone

Mitglied
Hallo
ich versuche folgendes bisher ohne erfolg.
Um meine Scripte besser Debbugen zu können, will ich alle gesetzten Variablen
(wirklich alle) im Browser ausgeben lassen. Jetzt könnte ich für jedes Script die
Variablen von Hand hinter ein echo() setzen - geht mir aber zu lange.
Geht das mit einem Befehl?
wie zB. der befehl:
PHP:
print_r($_SERVER);
wobei alle ServerVars ausgegeben werden.
Nun so etwas ähnliches für alle ScriptVariablen wäre super!

Vielen Dank schon mal!

Greets and bb
cObraOne
 
Liefere das Dokument einfach mit dem Media-Typen text/plain aus:
PHP:
<?php

	header('Content-Type: text/plain');

	…

?>
 
Hab's jetzt an mein Languagefile mit drangehängt. Sieht dann so aus:

Code:
   <?
   /*... Variablen definieren ...*/
   
   if (isset($ausgabe)) {
   ?>
   <html><head></head>
   <body>
   <?
   $vars = get_defined_vars();
   ?>
   <table border="1">
   <?
   foreach ($vars as $key => $val) {
   echo '<tr><td><em>['.$key.']</em><td>'.'<td>'.$val."</td></tr>";
   }
   ?>
   </table>
   </body></html>
   <? } ?>
 
Sowas nennt man glaub ich reverse-engeneering, oder? :-) ;-)

PHP:
$arr = get_defined_vars();
$ignore = array("HTTP_POST_VARS",
               "HTTP_GET_VARS",
               "HTTP_COOKIE_VARS",
               "HTTP_SERVER_VARS",
               "HTTP_ENV_VARS",
               "HTTP_SESSION_VARS",
               "_ENV","PHPSESSID",
               "SESS_DBUSER",
               "SESS_DBPASS",
               "HTTP_COOKIE");

echo '<table border="1">';
foreach($arr AS $var => $val)
    if(!in_array($var,$ignore))
        echo '<tr><td>['.$var.']</td><td>'.$val.'</td></tr>' . "\n";
echo '</table>';

Edit: *grml* Zu langsam... :D Naja, ich habe noch eine "Ignore"-Liste eingebaut, mit Dingen, die man nicht sehen will ;)
 
Zurück