【问题标题】:Validating string length using PHP filter extension [duplicate]使用 PHP 过滤器扩展验证字符串长度 [重复]
【发布时间】:2015-03-19 05:51:43
【问题描述】:

如何使用 PHP 过滤器扩展验证输入字符串的长度?

验证整数有 min_range 和 max_range 选项,但如果是字符串,我该怎么办?

【问题讨论】:

标签: php validation input


【解决方案1】:
  <?php
  foreach (filter_list() as $id =>$filter) {
      echo '<tr><td>' . $filter . '</td><td>' . filter_id($filter) . '</td></tr>';
  }
  ?>

更新:

// $_POST['name'] = "Robert <b>hello</b>";
var_dump(filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING));
// Output: string(12) "Robert hello"

// $_POST['email'] = "mail@example.com";
var_dump(filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL));
// Output: string(16) "mail@example.com"

// $_POST['age'] = "22";
var_dump(filter_input(INPUT_POST, 'age', FILTER_VALIDATE_INT,
                        array('options' => array('min_range' => 18,
                                                'max_range' => 28)
                        )));
// Output: int(22)

【讨论】:

  • 像这样:我可以使用 $var = filter_var('0755', FILTER_VALIDATE_INT, array('min_range'=>5)); 来验证整数的范围。但如果是字符串,则没有可用于检查长度的选项
  • 我认为没有使用 php 过滤器扩展来查找字符串长度的选项。
  • 因为在 php 过滤器函数中不必特别查找字符串长度。 php.net/manual/en/book.filter.php
  • true 选项数组默认只有三个键可用,min_range,max_range
  • link 这个问题回答了可用的选项
【解决方案2】:

strlen 用于获取字符串长度,然后你可以根据你的需要添加验证。

 $strlth =  strlen("Hello");

    if($strlth < 6){
      echo "invalid string"
    }else{
      your stuff
    }

【讨论】:

  • 没关系。但我想用 filter_input_array 函数来做,这样我就可以一次过滤所有的输入变量。
猜你喜欢
  • 2018-04-26
  • 1970-01-01
  • 2012-05-22
  • 1970-01-01
  • 2014-04-23
  • 2018-03-07
  • 1970-01-01
  • 2013-05-02
  • 1970-01-01
相关资源
最近更新 更多