PHP 数字かどうかチェックする

数字かどうかチェックする

phpである変数が数字(10進整数)かどうかチェックする場合、
is_numeric()を使えばいいのかと思ってましたが、
小数や16進数もtrueとなるそうです。(考えてみれば、そりゃそうだ)


正規表現で[0-9]+にマッチするかどうかチェックしとけばいいんだよな。。

if( ereg('^[0-9]+$', $num ) ){
echo "OK";
}

↑ゼロが頭に来てもOKとなります。

参照
http://openlab.dino.co.jp/2007/11/23/121351149.html

追記(2011/10/15)

PHP 5.3.0からeregは非推奨となったので、preg_matchで。

if( preg_match('/^[0-9]+$/', $num ) ){
        echo "OK";
}