有没有一种方法可以检查用户是否只使用PHP输入4个数字而不是4个字母?如果是这样如何?PHP验证问题
Q
PHP验证问题
1
A
回答
4
if (strlen($s) == 4 && ctype_digit($s)) {
// ...
}
2
或者你也可以这样做:
if(preg_match('/^\d{4}$/',$input)) {
// valid input
} else {
// invalid input.
}
2
ctype_digit将无法工作已经类型强制转换为整数/浮点型的用户输入。正则表达式很慢 - 所以只有在需要时才使用它。因此,考虑到这一点我会做类似
$s = (string) $_POST['value'];
if(strlen($s) === 4 AND ctype_digit($s))
{
// Now that it's verified as a good value
// convert to int for the rest of the script
$value = (int) $s;
}
这也将保护您免受传递数组到您的字符串检查的用户。
1
Filters可能是一个有效的选择,尽管有些冗长。它们允许你像规则一样表达你的验证规则,这是很好的:
$isValid = filter_input(
INPUT_POST,
'varname',
FILTER_VALIDATE_INT,
array('options' => array('min_range' => 1000, 'max_range' => 9999))
);
相关问题
- 1. PHP验证问题
- 2. PHP表单验证问题?
- 3. JQuery和PHP验证问题?
- 4. 问题验证链接-php
- 5. PHP和MySQL验证问题
- 6. PHP tinymce,验证问题
- 7. 验证码和标题有问题(PHP)
- 8. 验证问题
- 9. 验证问题
- 10. 验证问题
- 11. PHP jQuery的远程验证问题
- 12. 在验证表单中的问题 - php
- 13. PHP curl身份验证问题
- 14. PHP表单验证提交问题?
- 15. 问题与蛋糕PHP移动验证
- 16. PHP表单验证重播问题
- 17. PHP代码嗅探器验证问题
- 18. PHP表单验证提交问题
- 19. php/mysql表单验证问题
- 20. 蛋糕php验证码问题
- 21. AngularJS验证问题
- 22. jquery验证问题
- 23. XSD验证问题
- 24. JQuery验证问题
- 25. ASP.NET验证问题
- 26. jQuery验证问题
- 27. MVC3验证问题
- 28. Codeigniter验证问题
- 29. jQuery验证问题
- 30. MaskedEditExtender验证问题
+1对于大量未被使用的'ctype'函数! :) – deceze 2010-09-24 02:55:15