我可以通过循环运行$ _POST数组以获得与以下代码相同的结果吗?
$_POST['manufacturer'] = strip_tags($_POST['manufacturer']);<br>
$_POST['part_no'] = strip_tags($_POST['part_no']);<br>
$_POST['product_name'] = strip_tags($_POST['product_name']);<br>
$_POST['link'] = strip_tags($_POST['link']);<br>
或者有没有办法将strip_tags()应用于$ _POST数组中的每个字段?
答案 0 :(得分:6)
是的,请使用array_map()
$_POST = array_map("strip_tags", $_POST);
答案 1 :(得分:0)
如前所述,array_map()
是您正在寻找的功能
但是,请注意,如果您的某个数组值本身就是一个数组,则strip_tags将使该值无效。密钥将保留在父数组中,但该键的值将为null。这是我用来代替array_map的函数来避免这种情况。可能的用法是你的$ _POST中有html输入字段数组。例如,有几个名为name="hello[]"
function strip_tags_array($array){
$result=array();
if(is_array($array)){
foreach($array as $key=>$value){
if(is_array($value)){
$result[$key]=strip_tags_array($value);
}
else if(is_string($value)){
$result[$key]=strip_tags($value);
}
else{
$result[$key]=$value;
}
}
}
return $result;
}
$_POST = strip_tags_array($_POST);
答案 2 :(得分:0)
无法在我的服务器上使用任何示例。你们在测试解决方案吗? 这对我有用:
// no code
$allowcode=""; // put allowed code tags here
foreach ($_POST as $key => $value) { $$key=strip_tags($value, $allowcode); }
foreach ($_GET as $key => $value) { $$key=strip_tags($value, $allowcode); }
答案 3 :(得分:-1)
如果您不想使用任何PHP内置函数,可以执行以下操作:
foreach($_POST AS $key=>$val)
{
$_POST[$key] = strip_tags($val);
}