2016-04-21 3 views
0

Я хочу, чтобы иметь возможность называть массив «отец» из его дочернего элемента, с целью записи всех HTTP-переменных, отправленных на страницу, и записи в файл отладки. Если предположить, что у меня есть этот код (и что страница называется удаленно):Получение имени массива «отец» от «child»

$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 

Что я надеюсь достичь, это отладочный файл, содержащий следующую информацию:

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

и так далее. ..

На данный момент я получаю всю информацию в файле отладки, которую я хочу, но «имя» массива отцов, над которым я сейчас работаю, просто отображается как «Массив»: это делает полный смысл , но я не могу понять, как получить его имя и отобразить его как строковое значение. Это содержимое файла отладки:

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

Я знаю, что могу создать итератор в пределах внутреннего контура ребенка, а затем вызвать $ отца [0], $ отца [1], и каким-то образом преобразовать имя из массив в строку, но я надеялся, что кто-то может направить меня к более «изящному» способу делать что-то?

ответ

2

В вашем массиве информации нет. Установите соответствующие клавиши:

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

Затем изменить свой foreach таким образом:

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

Вы избили меня к нему! – Webeng

+0

Duh! Конечно ... Большое спасибо @ fusion3k – bnoeafk

Смежные вопросы