Udostępnij za pośrednictwem


Ustawienia ustawień regionalnych innych niż systemowe

Pobieranie sterownika PHP

Ta sekcja dotyczy tylko użytkowników systemów Linux i macOS, w szczególności tych, którzy zajmują się więcej niż jednym ustawieniami regionalnymi w swoich aplikacjach php.

Domyślnie sterowniki Microsoft dla PHP obsługujące SQL Server przejmują zmienną środowiskową LC_ALL zdefiniowaną w systemie i zastępują wszystkie inne kategorie LC_xxx (z możliwym wyjątkiem $LANG lub $LANGUAGE w pewnych okolicznościach), wpływając na separator tysięcy, znak dziesiętny, zestaw znaków, nazwy miesięcy i dni tygodnia, komunikaty aplikacji, takie jak komunikaty o błędach, symbol waluty itp.

Począwszy od wersji 5.8.0, użytkownicy mogą skonfigurować ustawienia lokalizacji przy użyciu pliku php.ini, jak pokazano w poniższych przykładach.

Ustawianie informacji o ustawieniach regionalnych przy użyciu sterownika SQLSRV

Dodaj następujące elementy na końcu pliku php.ini:

[sqlsrv]  
sqlsrv.SetLocaleInfo = <option>

Ustawianie informacji o ustawieniach regionalnych przy użyciu sterownika PDO_SQLSRV

Dodaj następujące elementy na końcu pliku php.ini:

[pdo_sqlsrv]  
pdo_sqlsrv.set_locale_info = <option>

Opcja może być jedną z następujących wartości:

Option Opis zachowania
0 Sterownik ignoruje ustawienia regionalne systemu.
1 Sterownik odczytuje zmienną LC_CTYPE.
2 Sterownik odczytuje zmienną LC_ALL (jest to wartość domyślna).

Kategoria LC_CTYPE określa reguły obsługi znaków, które określają interpretację sekwencji bajtów znaków tekstowych, klasyfikację znaków i zachowanie klas znaków. Steruje rozpoznawaniem wyższej i małej litery, znaków alfabetycznych i innych niż alfabetyczne itd.

Explanation

  1. Opcja 0 — użyj tej opcji, jeśli nie chcesz zmieniać ustawień regionalnych aplikacji.

  2. Opcja 1 — użyj tej opcji, aby ustawić tylko wartość systemową LC_CTYPE bez wpływu na inne LC_xxx kategorie.

  3. Opcja 2 — użyj LC_ALL, aby zastąpić wszystkie LC_xxx kategorie, wpływając na aplikację PHP i jej rozszerzenia.

Jeśli ustawienia regionalne dla dowolnego skryptu php nie są takie same jak ustawienia systemowe, może być konieczne określenie ustawień regionalnych w skryptach php przez wywołanie wbudowanej funkcji php setlocale.

Jeśli na przykład wartość domyślna systemu to en_US.UTF-8, ale skrypt PHP używa de_DE.UTF-8, wywołaj odpowiednio funkcję setlocale() PHP.

W polu Opcja 2 wskaż żądane ustawienia regionalne w skryptach php tylko wtedy, gdy różni się od zmiennej LC_ALL .

Uwaga / Notatka

Jeśli nic nie jest zdefiniowane w php.ini, domyślnie zastępowane są wszystkie pozostałe ustawienia regionalne na podstawie LC_ALL, która będzie przestarzała. W najbliższej przyszłości wartością domyślną będzie ignorowanie ustawień regionalnych systemu. W związku z tym użytkownicy będą musieli odpowiednio zmodyfikować plik php.ini, jeśli chcą zachować bieżące zachowanie.

Jeśli oba sterowniki sqlsrv i pdo_sqlsrv są włączone, ustawienie różnych opcji dla tych dwóch sterowników nie jest zalecane.