php-7 - 使用带有 FILTER_FLAG_ALLOW_FRACTION 的 Filter_SANITIZE_FLOAT 但仍然丢失逗号?
问题描述
我的问题是我丢失了小数符号,尽管我按照 PHP 文档使用了 sanitize float。
我考虑过使用验证而不是清理,但是哎呀......它在过去的命令实现中工作,所以我就是不明白。
我可能错过了什么?
我的错误代码片段:
if (is_numeric($value) && !empty($value) && !is_null($value)){
$temp[$key] = filter_var($value,FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
var_dump($value, $temp[$key]);
}
解决方案
毕竟我有两个解决这个问题的方法......
1-使用语言环境...因为我发现我的项目经理要求本地环境如下: setlocale(LC_ALL, 'fr_CA.utf-8'); 所以它确认逗号是十进制字符。我怀疑如果我的本地更改了十进制符号,PHP 在这种情况下不适应,PHP 仍然会使用 'filter_var('.
2- filter_var($value,FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION | FILTER_FLAG_ALLOW_THOUSAND); 它允许逗号和句号,所以它有点解决这个问题......
我将在 PHP 官方网站上发布此内容,以警告其他可能遇到与我相同的问题的人...
推荐阅读
- r - 为什么我需要将 data.table 分配给新对象以过滤行?
- ubuntu - 使用 cmake 编译循环时出现问题:找不到 OpenImageIO(缺少:OPENIMAGEIO_LIBRARY OPENIMAGEIO_INCLUDE_DIR)
- sql - MS SQL Server - 重命名表名但不更改所有查询
- jquery - 通过 jQuery 和处理程序使用会话超时
- powershell - 无法使用 Powershell 生成自签名证书
- c++11 - `syscall param epoll_ctl(event) 在 arm64 上的简单 boost 服务器中指向未初始化`
- postgresql - Ecto 和 jsonb_to_recordset
- scala - Mockito scala 对重载定义的模糊引用
- c# - dir 命令正在命令+当前路径中给出的路径上运行
- javascript - 如何以角度形式在 textarea 中呈现 HTML 标签