我不确定如何处理这个问题,我已经尝试了对我来说最明显的解决方案,但到目前为止,没有一个被证明是完全令人满意的。我一定是忽略了一些非常简单的事情。
我有一个输入文本类型的表单:
<input type="text" name="album_id">
我想验证输入以便用户只输入无符号整数...
$required = array(); // required or invalid input
$tmp = trim($_POST['album_id']);
if (!is_int((int)$tmp)) {
$required['album'] = 'The album id must contain a positive numeric value only.';
}
到目前为止,我使用的是 !is_numeric($tmp)
,但用户可以输入 9.2 或“1e4”,它会验证...所以它不起作用。
我也尝试过 !is_int((int)$tmp)
但出于某种原因,那个不起作用(也许它应该但我做错了......) .
我尝试了 ctype_digit
但没有成功。
我可能忽略了一些东西,但不确定是什么。
如何在 php 中验证无符号数?没有 float 、负数等...只有一个简单的无符号数(1 到 n)。
最佳答案
如果你想检查某个变量是否只包含数字(这似乎是你想要的,在这里),你可能不得不使用ctype_digit()
。 .
不确定您尝试了什么,但类似这样的方法应该有效:
$tmp = trim($_POST['album_id']);
if (ctype_digit($tmp)) {
// $tmp only contains digits
}
关于php - 如何在 PHP 中验证无符号数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5529030/