用户输入应该是某些特定字符串之一。
不是使用正则表达式来验证用户输入,而是可以使用if()
或switch()
语句将输入与字符串进行比较吗?
通常我会做类似的事情
$type = preg_replace('/[^\w\s\d]/', '', trim($_GET['type']));
但是可以吗
switch ($_GET['type']) {
case 'test': ...code...; break;
...more cases....
default: exit;
}
因此,如果用户输入的所有表达式都不允许,则退出。
还是可以在$_GET['type']
语句中评估switch()
?
谢谢。
答案 0 :(得分:1)
我通常使用in_array
根据特定的可接受值列表来验证输入。
if (!in_array($_GET['type'], $array_of_acceptable_values, true)) {
// handle the error condition with exit; or whatever you decide to do
}
在我看来,这比硬编码控制结构中的可接受值有很多优势。