Nastavení jiného národního prostředí než systému

Stáhnout ovladač PHP

Tato část se týká jenom uživatelů Linuxu a macOS, zejména těch, kteří pracují s více než jedním národním prostředím ve svých aplikacích PHP.

Ovladače Microsoftu pro PHP pro SQL Server ve výchozím nastavení přepíší LC_ALL proměnnou prostředí definovanou v systému a přepíše všechny ostatní LC_xxx kategorie (například s výjimkou $LANG nebo $LANGUAGE za určitých okolností), které ovlivňují oddělovač tisíců, znak desetinné čárky, znakovou sadu, názvy měsíců, dnů, zprávy aplikace, jako jsou chybové zprávy, symbol měny atd.

Od verze 5.8.0 mohou uživatelé nakonfigurovat nastavení lokalizace pomocí souboru php.ini, jak je znázorněno v příkladech níže.

Nastavení informací o národním prostředí pomocí ovladače SQLSRV

Na konec souboru php.ini přidejte následující:

[sqlsrv]  
sqlsrv.SetLocaleInfo = <option>

Nastavení informací o národním prostředí pomocí ovladače PDO_SQLSRV

Na konec souboru php.ini přidejte následující:

[pdo_sqlsrv]  
pdo_sqlsrv.set_locale_info = <option>

Tato možnost může být jedna z následujících hodnot:

Možnost Popis chování
0 Ovladač ignoruje nastavení národního prostředí systému.
1 Ovladač přečte proměnnou LC_CTYPE.
2 Ovladač přečte proměnnou LC_ALL (výchozí nastavení).

Kategorie LC_CTYPE určuje pravidla zpracování znaků, která řídí interpretaci sekvencí bajtů textových datových znaků, klasifikaci znaků a chování tříd znaků. Řídí rozpoznávání velkých a malých písmen, abecedních a ne abecedních znaků atd.

Explanation

  1. Možnost 0 – tuto možnost použijte, pokud nechcete měnit národní prostředí aplikace.

  2. Možnost 1 – tuto možnost použijte k nastavení pouze systémové hodnoty LC_CTYPE , aniž by to mělo vliv na ostatní LC_xxx kategorie.

  3. Možnost 2 – slouží LC_ALL k přepsání všech LC_xxx kategorií, které ovlivňují aplikaci PHP a její rozšíření.

Pokud národní prostředí pro jakýkoli skript php není stejné jako systémové skripty, možná budete muset určit národní prostředí ve skriptech PHP voláním integrované funkce php setlocale.

Pokud je například výchozí nastavení en_US.UTF-8 systému, ale skript php používá de_DE.UTF-8, pak odpovídajícím způsobem zavolejte funkci setlocale() php.

Pro možnost 2 uveďte požadované národní prostředí ve skriptech PHP pouze v případě, že se liší od LC_ALL proměnné.

Poznámka:

Pokud není v php.ini definováno nic, aktuálně výchozí nastavení je přepsat všechna ostatní nastavení národního prostředí na základě LC_ALL, což bude zastaralé. V blízké budoucnosti bude výchozí hodnota ignorovat nastavení národního prostředí systému. Uživatelé proto budou muset odpovídajícím způsobem upravit php.ini soubor, pokud chtějí zachovat aktuální chování.

Pokud jsou povolené ovladače sqlsrv i pdo_sqlsrv, nedoporučuje se nastavení různých možností pro oba ovladače.