打印$ _POSTvariables名称和值

我在PHP中有一个POST,我不会总是知道我将要处理的variables字段的名称。

我有一个函数,将通过值循环(但是我也想捕获与它一起使用的variables名称)。

foreach ($_POST as $entry) { print $entry . "<br>"; } 

一旦我弄清楚如何获取variables名称,我还需要弄清楚如何使这个函数足够聪明,以检测variables的数组是否存在(即,如果我有一些checkbox的值)。

如果您只想打印整个$ _POST数组来validation数据是否正确发送,请使用print_r :

 print_r($_POST); 

要recursion地打印数组的内容:

 printArray($_POST); function printArray($array){ foreach ($array as $key => $value){ echo "$key => $value"; if(is_array($value)){ //If $value is an array, print it as well! printArray($value); } } } 

应用一些填充嵌套数组:

 printArray($_POST); /* * $pad='' gives $pad a default value, meaning we don't have * to pass printArray a value for it if we don't want to if we're * happy with the given default value (no padding) */ function printArray($array, $pad=''){ foreach ($array as $key => $value){ echo $pad . "$key => $value"; if(is_array($value)){ printArray($value, $pad.' '); } } } 

如果给定variables是数组,则is_array返回true。

你也可以使用array_keys来返回所有的string名称。

您可以让foreach循环显示索引和值:

 foreach ($_POST as $key => $entry) { print $key . ": " . $entry . "<br>"; } 

至于数组检查,使用is_array()函数:

 foreach ($_POST as $key => $entry) { if (is_array($entry)) { foreach($entry as $value) { print $key . ": " . $value . "<br>"; } } else { print $key . ": " . $entry . "<br>"; } } 

使用更好:

 if (${'_'.$_SERVER['REQUEST_METHOD']}) { $kv = array(); foreach (${'_'.$_SERVER['REQUEST_METHOD']} as $key => $value) { $kv[] = "$key=$value"; } } 

如果你想检测数组字段使用这样的代码:

 foreach ($_POST as $key => $entry) { if(is_array($entry)){ print $key . ": " . implode(',',$entry) . "<br>"; } else { print $key . ": " . $entry . "<br>"; } }