我有一个数组,它来自$_POST[]
,并且可以在其中包含其他数组作为值,例如:
array(
'title' => 'Title',
'data' => array(
'hdr' => 'Header'
'bdy' => 'Body'
),
'foo' => array(1, 23, 65),
...
)
我如何清理这个大数组的所有值?例如将strip_tags()
应用于<>,标题,正文,1,23,65等值]我有一个数组,它来自$ _POST [],并且可以在其中包含其他数组作为值,例如:array('title'=>'Title','data'=> array('hdr'=>'标头''bdy'=&...
<?php
$a = array(
'title' => 'Title',
'data' => array(
'hdr' => 'Header',
'bdy' => 'Body'
),
'foo' => array(1, 23, 65)
);
$b = array_map("strip_tags", $a);
print_r($b);
?>
/* prevent XSS. */
$_GET = filter_input_array(INPUT_GET, FILTER_SANITIZE_STRING);
$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
function strip($string, $allowed_tags = NULL)
{
if (is_array($string))
{
foreach ($string as $k => $v)
{
$string[$k] = strip($v, $allowed_tags);
}
return $string;
}
return strip_tags($string, $allowed_tags);
}
仅是递归函数的示例,在这种情况下用于剥离标签。
$_GET =filter_var_array($_GET);
$_POST=filter_var_array($_POST);
foreach($_POST as $k=>$v) {$_POST[$k] = htmlspecialchars($v);}