2016-04-21 12 views
0

Ich möchte in der Lage sein, ein "Vater" -Array von seinem Kind zu benennen, mit dem Ziel, alle HTTP-Variablen an die Seite geschrieben und in eine Debug-Datei geschrieben. Unter der Annahme, dass ich diesen Code haben (und dass die Seite aufgerufen wird remote):Bekommen Name von "Vater" -Array von "Kind"

$father = array (getallheaders(), $_POST, $_GET); 
$info = ''; 
foreach ($father as $child){ 
    $info .= ${"child"} . "\n"; 
    $info .= '--------------' . "\n"; 
    foreach ($child as $key => $val){ 
    $info .= $key . ' : ' . $val . "\n"; 
    } 
    $info .= "\n\n"; 
} 

//write $info to a debug file 

Was ich hoffe, zu erreichen, ist die Debug-Datei, die die folgenden Informationen enthält:

getallheaders() 
-------------- 
Host : 1.2.3.4 
Connection : keep-alive 
// all other members of getallheaders() array 

$_POST 
-------------- 
// assuming that page was called via HTTP POST 
INPUT1 : input one text 
INPUT2 : input two text 
// all other members of $_POST array 

$_GET 
-------------- 
// assuming that page was called via HTTP GET 
INPUT10 : input ten text 
INPUT11 : input eleven text 
// all other members of $_GET array 
... 

und so weiter. ..

Im Moment bekomme ich alle Informationen in der Debug-Datei, die ich will, aber der "Name" des Vater-Array, das ich gerade arbeite, wird nur als Array angezeigt: was total Sinn macht , aber ich kann nicht herausfinden, wie man seinen Namen erhält und ihn als Zeichenfolgenwert anzeigt. Dies ist der Inhalt der Debug-Datei:

Array 
-------------- 
Host : 1.2.3.4 
Connection : keep-alive 
// all other members of getallheaders() array 

Array 
-------------- 
// assuming that page was called via HTTP POST 
INPUT1 : input one text 
INPUT2 : input two text 
// all other members of $_POST array 

Array 
-------------- 
// assuming that page was called via HTTP GET 
INPUT10 : input ten text 
INPUT11 : input eleven text 
// all other members of $_GET array 
... 

Ich weiß, dass ich einen Iterator inneren Schleife innerhalb des Kindes erstellen kann, und rufen Sie dann $ Vater [0], $ Vater [1] und irgendwie den Namen der umwandeln Array in eine Zeichenfolge, aber ich hatte gehofft, jemand könnte mich zu einem "eleganteren" Weg führen, Dinge zu tun?

Antwort

2

Ihr Array enthält keine Informationen zu untergeordneten Elementen. Set entsprechende Tasten:

$father = array ('getallheaders' => getallheaders(), '$_POST' => $_POST, '$_GET' => $_GET); 

Dann wird Ihre foreach auf diese Weise ändern:

foreach($father as $childname => $child) 
{ 
    $info .= "$childname\n"; 
    (...) 
} 
+0

Sie schlagen mich darauf! – Webeng

+0

Duh! Natürlich ... Vielen Dank @ fusion3k – bnoeafk

Verwandte Themen