php – 过滤sanizite用户输入浮点数逗号/点问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 过滤sanizite用户输入浮点数逗号/点问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1149字,纯文字阅读大概需要2分钟。
内容图文
![php – 过滤sanizite用户输入浮点数逗号/点问题](/upload/InfoBanner/zyjiaocheng/773/0ea6e744993b4f69a8609267e8924e09.jpg)
试图找出如何以合理的方式在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_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
我将发布的值放入另一个变量($amount_ecb),用点替换逗号,然后在$amount_ecb上使用filter_var – 而不是使用filter_input.
内容总结
以上是互联网集市为您收集整理的php – 过滤sanizite用户输入浮点数逗号/点问题全部内容,希望文章能够帮你解决php – 过滤sanizite用户输入浮点数逗号/点问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。