Edit report at https://bugs.php.net/bug.php?id=43372&edit=1
ID: 43372 Updated by: ras...@php.net Reported by: gbml at bravogroup dot org Summary: FILTER_VALIDATE_INT returns null for numbers with leading zero(s) Status: Not a bug Type: Bug Package: Filter related Operating System: linux PHP Version: 5.2.5 Assigned To: pajoye Block user comment: N Private report: N New Comment: Don't use FILTER_VALIDATE_INT if you don't want to validate decimal notation integers. Decimal notation integers do not have a leading 0, except for 0 itself, of course. If you just want a filter that checks if the input is entirely made of digits, just use a regex. eg. filter_var($string, FILTER_VALIDATE_REGEXP, ["options"=>["regexp"=>"/^[0- 9]+$/"]]); Previous Comments: ------------------------------------------------------------------------ [2013-08-05 14:05:50] kodafixed at gmail dot com FILTER_FLAG_ALLOW_OCTAL is not a feasible workaround for this issue. echo filter_var('08', FILTER_VALIDATE_INT, FILTER_FLAG_ALLOW_OCTAL) ? "OKAY" : "NOT OKAY"; // RESULT: "NOT OKAY" FILTER_FLAG_ALLOW_OCTAL completely invalidates tests where the value has a leading 0 and includes an 8 or 9. ------------------------------------------------------------------------ [2007-11-22 11:13:09] paj...@php.net See FILTER_FLAG_ALLOW_OCTAL. ------------------------------------------------------------------------ [2007-11-22 10:54:54] gbml at bravogroup dot org Description: ------------ Filtering input numbers with leading zero(s) and filter FILTER_VALIDATE_INT does not produce number Reproduce code: --------------- // $_POST ["size"] has value "002" filter_input (INPUT_POST, "size", FILTER_VALIDATE_INT) Expected result: ---------------- 2 Actual result: -------------- null ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=43372&edit=1