preg_match总是返回0

时间:2017-12-25 16:35:54

标签: php mysql

在下面的代码中,我控制数据库中的id是否为数字。我的问题是:我测试id的正则表达式总是给数字0返回永远不会为1 - 即使id是数字。

你能帮我解决一下吗?

这是带问题的代码:

$muster = "|^[0-9]+$|";
if(preg_match($muster, $_POST["Anzahl"]) == 0 || preg_match($muster, $_POST["id"]) == 0  || $_POST["Anzahl"] < 1) {
    die("<a href='javascript:history.back()'>Eingabe überprüfen</a>");
}

1 个答案:

答案 0 :(得分:0)

我会使用PHPValidate过滤器

更简单,更方便:

<?php
  $str = "100";

  if (filter_var($str, FILTER_VALIDATE_INT)) {
      echo("Variable is an integer");
  } else {
      echo("Variable is not an integer");
  }
?>

如果filter_var(($str, FILTER_VALIDATE_INT))成功,它将返回100作为整数,否则为false

顺便说一下有很多有用的过滤器:http://php.net/manual/de/filter.filters.validate.php