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
→ FALSE
0
→ FALSE
1
→ 1
+ 1
→ FALSE
+2
→ 2
++3
→ FALSE
4+
→ FALSE
5.6
→ FALSE
7,8
→ FALSE
这可以保证您测试的数字是一个自然数(除了左边的数字之外没有任何其他字符的正整数,除了+
左边的数字).即使它+
领先于它,它也只会返回数字本身.
但是有一个小的挫折,如果数字超过2147483647,它也将返回FALSE
(32位有符号二进制整数的最大正值).
归档时间: |
|
查看次数: |
3476 次 |
最近记录: |