Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
Opcja 0 — użyj tej opcji, jeśli nie chcesz zmieniać ustawień regionalnych aplikacji.
Opcja 1 — użyj tej opcji, aby ustawić tylko wartość systemową
LC_CTYPEbez wpływu na inneLC_xxxkategorie.Opcja 2 — użyj
LC_ALL, aby zastąpić wszystkieLC_xxxkategorie, 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.