PHP 7.0 round 函数和 MsSQL 模块

PHP 7.0 round 函数和 MsSQL 模块

我有一台 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 即可使其正常工作。

我的问题是为什么一个模块会改变内部功能的工作方式,但是微软……没有什么新鲜事。

如果有人对此有更多了解,欢迎。

问候。

相关内容