Arm*_*oot 5 php sanitization filter
从PHP清理过滤器列表中,有一个清除整数的选项:
FILTER_SANITIZE_NUMBER_INT - 删除除数字,加号和减号之外的所有字符.
如果我们使用:
filter_var($var2San, FILTER_SANITIZE_NUMBER_INT);
Run Code Online (Sandbox Code Playgroud)
这将清理点.和逗号,,但+和-迹象依然存在.例如:++++ --- 1.110,4 <b>m<sup>2</sup></b>被消毒了++++---111042.理想情况下,当数字为0时filter_var将返回false,即数字必须是自然数,更具体地说,是正整数.
因此,一个FILTER_SANITIZE_NUMBER_NATURAL方便...有没有解决方法或我需要一个RegExp?
Arm*_*oot 11
使用regexp函数似乎有点过分,因为还有另一种方法可以使用该filter_var函数:
filter_var($var2San, FILTER_VALIDATE_INT,
array('options' => array('min_range' => 1)));
Run Code Online (Sandbox Code Playgroud)
FILTER_ VALIDATE _INT列在PHP过滤器标志下,没有定义特定标志(在$options数组中),filter_var如果有效则将检测并返回该数字,FALSE否则返回.例子:
-1 → FALSE0 → FALSE1 → 1+ 1 → FALSE+2 → 2++3 → FALSE4+ → FALSE5.6 → FALSE7,8 → FALSE这可以保证您测试的数字是一个自然数(除了左边的数字之外没有任何其他字符的正整数,除了+左边的数字).即使它+领先于它,它也只会返回数字本身.
但是有一个小的挫折,如果数字超过2147483647,它也将返回FALSE(32位有符号二进制整数的最大正值).
| 归档时间: |
|
| 查看次数: |
3476 次 |
| 最近记录: |