ID: 41681 User updated by: rich at corephp dot co dot uk Reported By: rich at corephp dot co dot uk Status: Bogus Bug Type: Filter related Operating System: Windows XP SP2 PHP Version: 5.2.3 Assigned To: pajoye New Comment:
Then the 'bug' is simply in the documentation, because the thousands flag is *not* listed as a valid flag for that filter, and according to what you said, it should be. Previous Comments: ------------------------------------------------------------------------ [2007-06-14 05:30:03] [EMAIL PROTECTED] "In which case why does the "allow thousands flag work" Because the thousand separator can be , ' or even . There is also an option to define it. The scientific format is support by default, always. Just like a (float)$var. Finally, "e34200" is not a valid scientific format. Please refer to the various tests cases in the filter extensions to see other examples (http://cvs.php.net/viewvc.cgi/php-src/ext/filter/tests/). ------------------------------------------------------------------------ [2007-06-13 23:22:02] rich at corephp dot co dot uk I understand that, in which case why does the "allow thousands" flag work? One way or the other it is inconsistent. Either the bug is that the allow thousands flag works, or the bug is that allow scientific doesn't. ------------------------------------------------------------------------ [2007-06-13 20:45:19] [EMAIL PROTECTED] It is a flag for the sanitizing function not the validate filter, see the main page of the filter manual function. (Not a bug > bogus) ------------------------------------------------------------------------ [2007-06-13 18:31:26] rich at corephp dot co dot uk Description: ------------ FILTER_VALIDATE_FLOAT doesn't allow for the use of FILTER_FLAG_ALLOW_SCIENTIFIC as an option, although it DOES allow for the use of FILTER_FLAG_ALLOW_THOUSAND. As both are valid FILTER_SANITIZE_NUMBER_FLOAT flags, why not the same for the validate float filter itself? Reproduce code: --------------- $val = '34,200'; $result = filter_var($val, FILTER_VALIDATE_FLOAT, FILTER_FLAG_ALLOW_THOUSAND); var_dump($val); var_dump($result); $val = 'e34200'; $result = filter_var($val, FILTER_VALIDATE_FLOAT, FILTER_FLAG_ALLOW_SCIENTIFIC); var_dump($val); var_dump($result); Expected result: ---------------- string(6) "34,200" float(34200) string(6) "e34200" float(34200) Actual result: -------------- string(6) "34,200" float(34200) string(6) "e34200" bool(false) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=41681&edit=1