Rendszeren kívüli területi beállítások

PHP-illesztőprogram letöltése

Ez a szakasz csak Linux- és macOS-felhasználókra vonatkozik, különösen azokra, akik php-alkalmazásaikban egynél több területi beállítással foglalkoznak.

Alapértelmezés szerint az SQL Server PHP-hez készült Microsoft Drivers a rendszerben definiált LC_ALL környezeti változót veszi alapul, amely felülírja az összes többi LC_xxx kategóriát (bizonyos körülmények között talán kivéve a $LANG vagy $LANGUAGE kategóriákat). Ez hatással lehet az ezres elválasztójelre, a tizedesjelre, a karakterkódolásra, a hónapok és napok neveire, valamint az alkalmazási üzenetekre, például a hibaüzenetekre, és a pénznemszimbólumra stb.

Az 5.8.0-s verziótól kezdve a felhasználók az php.ini fájl használatával konfigurálhatják a honosítási beállításokat, ahogyan az az alábbi példákban látható.

Területi adatok beállítása az SQLSRV-illesztőprogram használatával

Adja hozzá a következőt a php.ini fájl végén:

[sqlsrv]  
sqlsrv.SetLocaleInfo = <option>

Területi adatok beállítása a PDO_SQLSRV illesztőprogram használatával

Adja hozzá a következőt a php.ini fájl végén:

[pdo_sqlsrv]  
pdo_sqlsrv.set_locale_info = <option>

A beállítás a következő értékek egyike lehet:

Lehetőség Viselkedés leírása
0 Az illesztőprogram figyelmen kívül hagyja a rendszer területi beállításait.
1 Az illesztőprogram felolvassa a LC_CTYPE változót.
2 Az illesztőprogram beolvassa a LC_ALL változót (ez az alapértelmezett).

A LC_CTYPE kategória meghatározza a karakterkezelési szabályokat, amelyek szabályozzák a szöveges adatkarakterek bájtjainak értelmezését, a karakterek besorolását és a karakterosztályok viselkedését. Szabályozza a kis- és nagybetűk, betűrendes és nem betűrendes karakterek felismerését stb.

Explanation

  1. 0. lehetőség – ezt akkor használja, ha nem szeretné módosítani az alkalmazás területi beállítását.

  2. 1. lehetőség – ezzel csak a rendszer értékét LC_CTYPE állíthatja be a többi LC_xxx kategória befolyásolása nélkül.

  3. 2. lehetőség – használja a LC_ALL az összes LC_xxx kategória felülbírálásához, ami hatással van a PHP-alkalmazásra és annak bővítményeire.

Ha egy php-szkript területi beállítása nem egyezik meg a rendszerével, előfordulhat, hogy a php-szkript(ek) területi beállítását a php beépített setlocale függvény meghívásával kell megadnia.

Ha például a rendszer alapértelmezett, en_US.UTF-8, de a PHP szkript de_DE.UTF-8-t használ, akkor a PHP függvényt setlocale() meghívja megfelelően.

A 2. lehetőségnél csak akkor adja meg a kívánt területi beállítást a php-szkriptekben, ha az eltér a LC_ALL változótól.

Megjegyzés:

Ha a php.ini fájlban nincs semmi meghatározva, az aktuális alapértelmezett beállítás az összes többi területi beállítás LC_ALL felülbírálása, amit megszűnik támogatni. A közeljövőben az alapértelmezett beállítás a rendszer területi beállításainak figyelmen kívül hagyása lesz. Így a felhasználóknak ennek megfelelően kell módosítaniuk a php.ini fájlt, ha meg szeretnék tartani az aktuális viselkedést.

Ha az sqlsrv és pdo_sqlsrv illesztőprogramok is engedélyezve vannak, a két illesztőprogram különböző beállításai nem ajánlottak.