php – 过滤sanizite用户输入浮点数逗号/点问题
发布时间:2020-12-13 16:04:05 所属栏目:PHP教程 来源:网络整理
导读:试图找出如何以合理的方式在 PHP中使用过滤器 //Do sanization of user input//$_POST['amount_ecb'] can be 77,7 or 77.7$amount = filter_input(INPUT_POST,'amount_ecb',FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION); 如果发布值为77.7则正
试图找出如何以合理的方式在
PHP中使用过滤器
//Do sanization of user input //$_POST['amount_ecb'] can be 77,7 or 77.7 $amount = filter_input(INPUT_POST,'amount_ecb',FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION); 如果发布值为77.7则正确设置数量,但如果用户使用逗号而不是点数设置数字(例如77,7),则金额返回77 我希望它在两种情况下都返回77.7.这有可能用过滤器解决吗? UPDATE 使用时 $_POST['amount_ecb'] = str_replace(',','.',$_POST['amount_ecb']); 之前 这是它的回归 $_POST对象 array (size=5) 'amount_ecb' => string '77.7' (length=4) 'from_ecb' => string 'GBP' (length=3) 'to_ecb' => string 'SEK' (length=3) 'submit' => string 'Calculate currency' (length=18) 'result_decimals' => string '4' (length=1) $量 string '777' (length=3) 解决方法
终于找到了如何解决这个问题! (即使我认为这应该以某种方式构建到input_filter中).
如果有人偶然发现同样的问题…… $amount_ecb = str_replace(',$_POST['amount_ecb']); $amount = filter_var($amount_ecb,FILTER_FLAG_ALLOW_FRACTION); 我将发布的值放入另一个变量($amount_ecb),用点替换逗号,然后在$amount_ecb上使用filter_var – 而不是使用filter_input. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |