#40156 [Bgs->Opn]: FILTER_SANITIZE_NUMBER_FLOAT incorrect when multiple dots in value

From: Date: Wed, 17 Jan 2007 20:33:49 +0000
Subject: #40156 [Bgs->Opn]: FILTER_SANITIZE_NUMBER_FLOAT incorrect when multiple dots in value
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-107698@lists.php.net to get a copy of this message
ID: 40156 User updated by: pmjones88 at gmail dot com Reported By: pmjones88 at gmail dot com -Status: Bogus +Status: Open Bug Type: Filter related Operating System: Mac OS X PHP Version: 5.2.0 New Comment: When I try pajoye's suggestion, to use validation, it does not return a float as he says it should. Instead, it (properly) returns false. $val = 'abc ... 123.45 ,.../'; $san = filter_var($val, FILTER_VALIDATE_FLOAT); var_dump($san); // (bool) false What's a guy gotta do to get a float out of that? Previous Comments: ------------------------------------------------------------------------ [2007-01-17 20:26:02] tony2001@php.net Again, sanitizing filter just sanitizes the input data, it does not validate it. ------------------------------------------------------------------------ [2007-01-17 20:25:54] derick@php.net No, that's what the logical filters are for. ------------------------------------------------------------------------ [2007-01-17 20:23:14] pmjones88 at gmail dot com Then it should at least fail when it realizes that the value isn't going to be useful as a float. Maybe I don't get it; a "sanitized" float should return as a "float". Otherwise you're just stripping non-numeric characters, which is not quote the same thing. ------------------------------------------------------------------------ [2007-01-17 20:12:06] tony2001@php.net http://php.net/filter FILTER_SANITIZE_NUMBER_FLOAT - Remove all characters except digits, +- and optionally .,eE. It's not supposed to validate the result. ------------------------------------------------------------------------ [2007-01-17 20:11:15] pajoye@php.net Use FILTER_VALIDATE_FLOAT if you like to validate a string and get a float value. Sanitizing filters only clean the string. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/40156 -- Edit this bug report at http://bugs.php.net/?id=40156&edit=1

« previous php.bugs (#107698) next »