![PHP 7.0 round 函数和 MsSQL 模块](https://linux22.com/image/1569700/PHP%207.0%20round%20%E5%87%BD%E6%95%B0%E5%92%8C%20MsSQL%20%E6%A8%A1%E5%9D%97.png)
我有一台 Debian 服务器,用作 Web 服务器。最近我需要安装 MsSQL 模块以使用 Microsft SQL Server 作为源,但安装后我注意到 php round 函数将小数分隔符从点更改为逗号,这破坏了一些脚本。也许其他函数也受到影响,但我只注意到 round 函数的问题。
禁用模块后它立即开始再次正常工作。
已启用:
# php -r 'echo round(85.20, 1);'
85,2
已禁用:
# php -r 'echo round(85.20, 1);'
85.2
我已经使用 pecl 安装了最新的模块,并且使用 conf 文件启用了该模块:
; -configuration for php mssql module
; priority=20
extension=sqlsrv.so
; -configuration for php mssql module
; priority=20
extension=pdo_sqlsrv.so
在 google 上搜索了一番后,我还是没能找到解决问题的方法,服务器区域设置也没有问题。有人说用逗号替换点,反之亦然,但搜索整个网页上的所有功能并添加“替换”功能并不是最好的方法。
有人知道如何解决这个问题吗?
谢谢!!
答案1
我终于找到了问题所在。我的机器配置了语言环境 es_ES.UTF-8,但 sqlsrv 模块似乎不喜欢它。将语言环境更改为 en_US.UTF-8 即可使其正常工作。
我的问题是为什么一个模块会改变内部功能的工作方式,但是微软……没有什么新鲜事。
如果有人对此有更多了解,欢迎。
问候。