Довольно часто при программировании приходилось проверять определенную переменную, является ли она числом или нет. Стандартные функции не совсем подходили, поскольку пользователь мог ввести число через запятую, точку, и даже русскую "б" (запятая на клавиатуре) и чтобы сделать удобный интерфейс я принимал любое число в таком виде.
А проверял эту переменную таким образом:
//только допустимые символы
function onlyDigits($strn) {
if (strlen($strn) != 0) { //если символов нет, значит точно не
$strn = strtolower($strn);
$vwl = array("1","2","3","4","5","6","7","8","9","0",",",".","б"); //допускаемые символы, и буква "б" - это ж запятая
$strn = str_replace($vwl, "", $strn); //заменяем
if (strlen($strn) == 0) return true; //прошла проверку
else return false; //не прошла проверку
} else return false; //не прошла проверку
}
Вы можете задать свой массив допустимых символов.