PHP 7.0 Rundenfunktion und MsSQL-Modul

334
Daniel Carrasco

Ich habe einen Debian-Server, der als Webserver fungiert. Vor kurzem musste ich das MsSQL-Modul installieren, um einen Microsft SQL Server als Quelle zu verwenden, aber nach der Installation habe ich festgestellt, dass die PHP-Funktion das Dezimaltrennzeichen von Punkt zu Komma geändert hat und einige Skripts bricht. Möglicherweise sind auch andere Funktionen betroffen, aber ich habe nur das Problem mit der Rundenfunktion bemerkt.

Gleich nach dem Deaktivieren des Moduls funktioniert es wieder einwandfrei.

Aktiviert:

# php -r 'echo round(85.20, 1);' 85,2 

Deaktiviert:

# php -r 'echo round(85.20, 1);' 85.2 

Ich habe die neuesten Module mit pecl installiert und das Modul mit conf-Dateien aktiviert:

; -configuration for php mssql module ; priority=20 extension=sqlsrv.so   ; -configuration for php mssql module ; priority=20 extension=pdo_sqlsrv.so 

Nach einigen Suchanfragen bei Google kann ich das Problem nicht beheben, und Server-Gebietsschemas sind in Ordnung. Jemand sagt, die Punkte durch Komma und umgekehrt zu ersetzen, aber die Rundumfunktionen auf der gesamten Webseite zu durchsuchen und "Ersetzen" -Funktionen hinzuzufügen, ist nicht der beste Weg.

Kennt jemand eine Möglichkeit, dieses Problem zu beheben?

Vielen Dank!!

1

1 Antwort auf die Frage

0
Daniel Carrasco

Endlich habe ich das Problem gefunden. Mein Rechner ist mit locale es_ES.UTF-8 konfiguriert und sieht so aus, als ob das Modul sqlsrv es nicht mag. Wenn Sie das Gebietsschema in en_US.UTF-8 ändern, wird es funktionieren.

Meine Frage ist, warum ein Modul die Funktionsweise einer internen Funktion ändert, aber Microsoft ist ... nichts Neues.

Wenn jemand mehr darüber weiß, ist das willkommen.

Schöne Grüße.