通过将其与字符串进行比较来验证用户输入是否可以?

时间:2019-07-16 22:30:11

标签: php

用户输入应该是某些特定字符串之一。

不是使用正则表达式来验证用户输入,而是可以使用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()

谢谢。

1 个答案:

答案 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
}

在我看来,这比硬编码控制结构中的可接受值有很多优势。

  • 更少的代码
  • 更容易在需要时更新值列表
  • 如果您决定从其他来源(配置文件等)中轻松加载值列表,则很容易