我正在使用PHP filter_input函数来解析HTML表单输入.其中一个输入字段代表金额.我希望我有一些用户使用逗号,有些用点作为小数分隔符. FILTER_VALIDATE_FLOAT过滤器有一个十进制选项,但我还没有找到一种干净的方法来接受这两个字符作为小数分隔符.
目前我的代码看起来像以下行,但是这不接受像123.45这样的金额.
$money = filter_input(INPUT_POST, 'money', FILTER_VALIDATE_FLOAT, array('options' => array('decimal' => ',')));
是否有任何标准/干净的方式接受几种类型的小数分隔符,而不必编写自定义解析函数?
解决方法:
我使用filter_var而不是filter_input重写了我的代码,并使用了hd的str_replace技巧.最终结果如下:
$temp_money = str_replace(".", ",", $_POST['money']);
$money = filter_var($temp_money, FILTER_VALIDATE_FLOAT, array('options' => array('decimal' => ',')));
如果$_POST [‘money’]为null,那么$money也将为null,这与filter_input的行为相同,因此我的验证代码的其余部分不必更改.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。