I guess that works but every possible solution posted in this thread is a lot of lines of code to perform a simple validation.
PHP should offer/modify the appropriate API to do this. I remember that is_numeric() didn't exist before. Something like: is_float_string(mixed value) or modify is_numeric() to explictly perform an integer validation: is_numeric(mixed value [, bool is_integer = false]) is_numeric("5.5", true) ==> false, "5.5" is not an integer string is_numeric("10", true) ==> true May be filing a bug report will do the trick. ;-) -William El mi? 07-04-2004 a las 10:25, Red Wingate escribió: > An RegExp will work but is not as fast as native functions, but you > could use something like: > > $len1 = strlen ( $input ); > $len2 = strspn ( $input , "1234567890,." ); > > if ( $len1 == $len2 ) { > echo 'yuuhooo'; > } else { > echo 'd\'oh'; > } > > [...] > > > From: "William Lovaton" <[EMAIL PROTECTED]> > > > > > > > Instead of doing a lot of casting, you can use is_numeric() to see if a > > > > variable is a number or a numeric string. > > > > > > Yeah, but the OP wanted to be able to tell an integer from a real number > > > from a string. is_numeric() is going to validate 5, 5.5, and 5.05E6, for > > > example. > > > > well, an integer is a float too, the real problem is when you type 5.5 > > in a variable that is expected to be integer. In this case is_numeric() > > won't do the trick. > > > > May be using regexps ([0-9]) will be enough to check integer values but > > I think it is a bit slower. It is always better to use native functions > > instead of regexps where possible. > [...] -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php