2012-05-16 56 views
0

这里是我用于最少3个字符检查的简单代码。 如果查询是完全数字的(如果查询的个案ID少于3个字符,代码也有一个选项),我想做一个例外。搜索过滤器:最少字符数

<?php 

if (strlen($_POST['Search'])>=3) { 

include 'search.php'; 

} else { 

$message = '3+ characters, please'; 

} 

?> 

感谢您的帮助:)

回答

1

你应该写这样的事:

// make sure no notices are emitted if the input is not as expected 
$search = isset($_POST['Search']) ? $_POST['Search'] : null; 

if (!ctype_digit($search)) { 
    // it's all digits 
} 
else if (strlen($search) < 3) { 
    // error: less than three characters 
} 
else { 
    // default case 
} 

随意合并分支是默认情况下,“所有数字”的情况下应转发到相同的代码。

重要:使用ctype_digit检查,如果输入的是所有数字。 is_numeric将返回true对输入的其他类型还有:

数字字符串由可选的符号,任意数量的数字, 可选的小数部分和可选的指数部分。因此+ 0123.45e6 是一个有效的数值。十六进制符号(0xFF)也是允许的 但只有符号,小数和指数部分。

1

如果我理解正确的话:

<?php 

if (is_numeric($_POST['Search']) || strlen($_POST['Search'])>=3) { 

?> 
2

使用此:

if (strlen($_POST['Search'])>=3 ||is_numeric($_POST['Search'])) { 
    //Do stuff 
} else 
//do other stuff