# Alle Variablen ausgeben lassen



## cobraone (12. Dezember 2003)

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: 
	
	
	



```
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


----------



## bn (14. Dezember 2003)

```
foreach($_REQUEST AS $key => $value)
{
   echo $key.": ".$value."<br>";
}
```

bloddy


----------



## chibisuke (14. Dezember 2003)

versuchs mal so:

print_r(get_defined_vars());


----------



## rarelines (22. Juni 2005)

Hi Leute,

 ich brauche genau diese Funktion, das einzige Problem ist, dass ich nach einem Variablenwert eine neue Zeile brauche, sodass jede Variable in einer Zeile steht:

http://chiemsee-light.de/inc/ausgabe.php

  Vielen Dank schonmal.


----------



## Gumbo (22. Juni 2005)

Liefere das Dokument einfach mit dem Media-Typen text/plain aus:
	
	
	



```
<?php

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

	…

?>
```


----------



## rarelines (22. Juni 2005)

Vielen Dank.

  Hab's schon anders gefunden. Hatte mir das nämlich eher so gedacht:

http://www.chiemsee-light.de/inc/ausgabe2.php



 Aber jetzt steh ich doch wieder aufm Schlauch: Kann ich irgendwie die Servervariablen weglassen und nur selbstdefinierte ausgeben!?


----------



## Jörg Rißmann (22. Juni 2005)

Wie lautet bitte der Lösung-Code, danke.


----------



## rarelines (22. Juni 2005)

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


```
<?
   /*... 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>
   <? } ?>
```


----------



## MiLa (22. Juni 2005)

Sowas nennt man glaub ich reverse-engeneering, oder?   ;-)


```
$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...  Naja, ich habe noch eine "Ignore"-Liste eingebaut, mit Dingen, die man nicht sehen will


----------



## rarelines (22. Juni 2005)

Vielen Dank. Das war schonmal der richtige Weg.

http://www.chiemsee-light.de/inc/lang_german.php?ausgabe=true

 Aber muss ich jetzt alle Variablen einzeln aufzählen, die nicht reinsollen?


----------



## MiLa (22. Juni 2005)

Entweder das, oder du wählst explizit aus was du haben willst


```
$arr = get_defined_vars();
$white = Array("SERVER_NAME",
                "SERVER_ADMIN");

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


----------



## rarelines (22. Juni 2005)

Okay. Danke.


----------

