Nationella inställningar som inte är systeminställningar

Ladda ned PHP-drivrutin

Det här avsnittet gäller endast för Linux- och macOS-användare, särskilt de som hanterar mer än ett språk i sina php-program.

Som standard tar Microsoft Drivers för PHP för SQL Server miljövariabeln LC_ALL som definierats i systemet och åsidosätter alla andra LC_xxx kategorier (kanske utom $LANG eller $LANGUAGE under vissa omständigheter), vilket påverkar tusentalsavgränsaren, decimaltecknet, teckenuppsättningen, månad, dagnamn, programmeddelanden som felmeddelanden, valutasymbol osv.

Från och med version 5.8.0 kan användarna konfigurera inställningarna för lokalisering med hjälp av filen php.ini, enligt exemplen nedan.

Ange språkinformation med hjälp av SQLSRV-drivrutinen

Lägg till följande i slutet av din php.ini-fil:

[sqlsrv]  
sqlsrv.SetLocaleInfo = <option>

Ange språkinformation med hjälp av PDO_SQLSRV-drivrutinen

Lägg till följande i slutet av din php.ini-fil:

[pdo_sqlsrv]  
pdo_sqlsrv.set_locale_info = <option>

Alternativet kan vara något av följande värden:

Option Beskrivning av beteende
0 Drivrutinen ignorerar systemets lokala inställningar.
1 Drivrutinen läser variabeln LC_CTYPE.
2 Drivrutinen läser variabeln LC_ALL (detta är standardvärdet).

Kategorin LC_CTYPE bestämmer regler för teckenhantering, som styr tolkningen av sekvenser av byte av textdatatecken, klassificering av tecken och beteendet för teckenklasser. Den styr igenkänning av versaler och gemener, alfabetiska och icke-alfabetiska tecken och så vidare.

Explanation

  1. Alternativ 0 – använd detta när du inte vill ändra programmiljön.

  2. Alternativ 1 – använd detta för att endast ange systemvärdet LC_CTYPE för utan att påverka de andra LC_xxx kategorierna.

  3. Alternativ 2 – använd LC_ALL för att åsidosätta alla LC_xxx kategorier, vilket påverkar php-programmet och dess tillägg.

Om språkvarianten för php-skript inte är samma som systemskripten kan du behöva ange språkvarianten i php-skripten genom att anropa den inbyggda php-funktionen setlocale.

Om systemstandarden till exempel är en_US.UTF-8 men php-skriptet använder de_DE.UTF-8anropar du php-funktionen setlocale() på rätt sätt.

För Alternativ 2 anger du önskat språk i php-skripten endast om det skiljer sig från variabeln LC_ALL .

Anmärkning

Om ingenting har definierats i php.iniär den aktuella standardinställningen att åsidosätta alla andra nationella inställningar baserat på LC_ALL, som kommer att vara inaktuella. Inom en snar framtid kommer standarden att vara att ignorera systeminställningarna för språk. Användarna måste därför ändra php.ini-filen om de vill behålla det aktuella beteendet.

Om både sqlsrv- och pdo_sqlsrv drivrutiner är aktiverade rekommenderar vi inte att du anger olika alternativ för de två drivrutinerna.