我使用is_numeric驗證來自POST數據來像整數:
if(! is_numeric($_POST['integer_string'])) return FALSE // not a integer
接着我發現如果該值有小數點is_numeric將返回TRUE。
下一個我試圖鑄造和is_int:
$int = (int) $_POST['numeric_string'];
if(! $int) return FALSE // not a integer
但非數值通過後鑄造將削減整數。
$int = '222i2';
echo $int;
// 222
我試圖驗證的整數將用於SQL中的WHERE子句以標識整數主鍵。
什麼是從POST數據驗證整數的傻瓜證明方式,或者您個人如何處理此問題?
有很多騙局。我選擇了[php驗證整數](http://stackoverflow.com/questions/4100022/php-validate-integer),因爲它包含兩個正確的答案:正則表達式和'filter_input()'。 –
['ctype_digit'](http://php.net/ctype_digit) – deceze
我查看了很多其他答案,但沒有一個將整數指定爲主鍵。但我想這與其他整數沒有什麼不同。 –