是否可以循询$_GET
请求或$_POST
请求中的所有内容?
我知道可以执行foreach
循环,但完全包含Array
值。
我想要做的是清理$_GET
或$_POST
全局变量中的每个字符串,以便它们可以在数据class
中使用。
我也知道我可以做foreach($user_data['permissions']...
之类的事情,但我不会知道$_GET
或$_POST
变量中的所有内容。
答案 0 :(得分:0)
array_walk_recursive()
可以帮到你;但是,它有一个严重的缺陷:
任何包含数组的键都不会传递给函数。
这意味着如果你有这样的东西:
$_GET = array(
'foo' => 'bar',
'permissions' => array(
'abc' => 123
)
);
您会看到foo => bar
和abc => 123
,但您不知道permissions.abc => 123
。如果您只需要清理所有值(独立于[嵌套]键),那么这并不重要。如果这很重要,您可能最好自己实施。像这样:
foreach($_GET as $key => $value) {
if(is_array($value)) {
foreach($value as $sKey => $sValue) {
// sanitize
}
} else {
// sanitize
}
}
这甚至可以变成一个可以递归循环的函数,但是我会把它告诉你。基本上你只需将上面的内容放在sanitizeData()
函数中,然后在数组sanitizeData()
的值的任何时候调用is_array()
函数。