2011-09-24 64 views
0

我想驗證$ _POST的包含,必須是數字。我如何檢查$ _POST的包含PHP?

例如(我想要的結果):

1876 //true 
2.34 // false 
erfka // false 
1djs33 // false 

回答

3

ctype_digit是你的朋友。它會檢查變量中是否只包含數字,而不是時段或其他任何數字。 ctype_digit甚至不允許負數,但只是數字

它實際上也檢查有包含的數字。用ctype_digit將空字符串評估爲false

+0

你解決了我的問題。我測試了你的方式。有用。謝謝。 A + help –

0

嘗試使用PHP is_numeric功能

+0

謝謝您的回答。但is_numeric給出了1djs33的結果。我只需要接受數字。 –

+0

@ParaibatoPusan沒有它的不是:http://codepad.viper-7.com/uBXarj – Robik

+0

@strauberry什麼問題轉換爲整數後? – Robik

1

這將是更好地使用ctype_digit!

0

嘗試使用此代碼 -

if(strpos($_POST['number'],'.') === false && is_numeric($_POST['number'])) 
echo 'Its a numeriac int value'; 
else 
echo 'not a numeric value'; 
+1

千萬不要使用這個! – Wesley

+0

此代碼難以閱讀和錯誤。如果第一個表達式爲假(帶有strpos的表達式),則第二個表達式永遠不會執行(短路評估)。 strpos的結果是int或者false,爲了測試false,你應該使用'strpos()=== false',因爲位置0也被認爲是false。 – martinstoeckli

+0

這會說「0XAE」是一個數字整數,它可能是正確的,因爲它可以評估爲int,但它可能是錯誤的問題。它也會錯誤地說「3e-1」是一個整數,當它實際上評估浮點數爲「0.3」時, –

相關問題