2016-04-21 10 views
0

ページに送信されたすべてのHTTP変数を書き込んでデバッグファイルに書き込む目的で、 "father"配列にその子から名前を付けることができます。私はこのコードを持っていると仮定すると(とページがリモートで呼び出されていること):ように"child"から "father"配列の名前を取得する

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

と:

$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 

は、私は何を達成するために望んでいることは、以下の情報を含むデバッグファイルがあります。 ..

現時点では、私が望むデバッグファイルのすべての情報を取得しますが、私が現在作業している父の配列の「名前」は、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 
... 

私は[1] [0]、$の父、私は子供の内部ループ内イテレータを作成し、$父親を呼び出すことができます知っていると何とかの名前を変換します配列を文字列に変換することはできますが、私は誰かが私をよりエレガントなやり方で指示することを望んでいましたか?

答えて

2

あなたの配列には子供に関する情報はありません。適切なキーを設定します。

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

そして、このようにあなたのforeachを変更:

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

あなたはそれに私を打ち負かします! – Webeng

+0

Duh!もちろん...多くのおかげで@ fusion3k – bnoeafk

関連する問題