我试图一次消毒54个变量。
目前我正在逐一这样做
if($vissuedate != '') {
$vissuedate = filter_var($vissuedate, FILTER_SANITIZE_STRING);
if($vissuedate == ''){
$vvalidate++;
}
}
我还有很多,想问一下是否有办法一次性验证所有这些内容?
答案 0 :(得分:1)
您可以像这样迭代$_GET
:
<?php
foreach($_GET as $key => $value) {
if($_GET[$key] != '') {
$vissuedate = filter_var($_GET[$key], FILTER_SANITIZE_STRING);
if($vissuedate == ''){
$vvalidate++;
}
}
Or as you says将它们全部分配给一个数组,然后尝试从那里验证
答案 1 :(得分:1)
您可以将$_GET
中的所有密钥放入数组中:
$get_array = array_keys($_GET);
或者,如果你想跳过一些,你可以使用你自己的数组:
$get_array = array('name','adress','phone',...);
然后:
foreach($get_array as $v=>$key){
//check if exists
if(!isset($_GET[$key]){
//do something
}
else{
//do sanitizing here }
}
}
或者,如果你想进行不同类型的消毒,你可以使用带数字的数组:
$get_array = array('name'=>1,'adress'=>1,'phone'=>2,...);
foreach($get_array as $v=>$key){
//check if exists
if(!isset($_GET[$key]){
//do something
}
else{
switch($v){
case 1:
//do something here;
break;
case 2:
//do something else
break;
}
}
}
}