打印 $_POST 变量名和值
Posted
技术标签:
【中文标题】打印 $_POST 变量名和值【英文标题】:Print $_POST variable name along with value 【发布时间】:2011-03-30 04:44:42 【问题描述】:我在 php 中有一个 POST,我并不总是知道要处理的变量字段的名称。
我有一个函数会循环遍历这些值(但是我也想捕获与之相关的变量名。)
foreach ($_POST as $entry)
print $entry . "<br>";
一旦我弄清楚如何获取变量名称,我还需要弄清楚如何使函数足够智能,以检测并循环遍历数组以获取变量(如果它们存在)(即,如果我有一些复选框值。 )
【问题讨论】:
这个问题肯定没有本地化,因为我也经历过类似的情况。 【参考方案1】:您可以让 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>";
【讨论】:
【参考方案2】:如果您只想打印整个 $_POST 数组以验证您的数据是否正确发送,请使用print_r:
print_r($_POST);
递归打印数组的内容:
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.' ');
is_array 如果给定变量是一个数组,则返回 true。
您也可以使用 array_keys 来返回所有的字符串名称。
【讨论】:
【参考方案3】:如果您想检测数组字段,请使用如下代码:
foreach ($_POST as $key => $entry)
if (is_array($entry))
print $key . ": " . implode(',',$entry) . "<br>";
else
print $key . ": " . $entry . "<br>";
【讨论】:
【参考方案4】:使用起来会好很多:
if ($'_'.$_SERVER['REQUEST_METHOD'])
$kv = array();
foreach ($'_'.$_SERVER['REQUEST_METHOD'] as $key => $value)
$kv[] = "$key=$value";
【讨论】:
以上是关于打印 $_POST 变量名和值的主要内容,如果未能解决你的问题,请参考以下文章