Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Этот раздел относится только к пользователям Linux и macOS, в частности к тем, кто работает с несколькими языковыми стандартами в приложениях PHP.
По умолчанию драйверы Майкрософт для PHP для SQL Server принимают LC_ALL переменную среды, определенную в системе, и переопределяет все остальные LC_xxx категории (возможно, кроме $LANG$LANGUAGE или в некоторых случаях), затрагивая разделитель тысяч, десятичный знак, набор символов, месяц, имена дней, сообщения приложения, такие как сообщения об ошибках, символ валюты и т. д.
Начиная с версии 5.8.0, пользователи могут настраивать параметры локализации с помощью файла php.ini, как показано в примерах ниже.
Настройка сведений о языковом стандарте с помощью драйвера SQLSRV
Добавьте следующий код в конец файла php.ini:
[sqlsrv]
sqlsrv.SetLocaleInfo = <option>
Настройка сведений о языковом стандарте с помощью драйвера PDO_SQLSRV
Добавьте следующий код в конец файла php.ini:
[pdo_sqlsrv]
pdo_sqlsrv.set_locale_info = <option>
Параметр может принимать одно из следующих значений:
| Вариант | Описание поведения |
|---|---|
| 0 | Драйвер не учитывает параметры языкового стандарта системы. |
| 1 | Драйвер считывает переменную LC_CTYPE. |
| 2 | Драйвер считывает переменную LC_ALL (это значение по умолчанию). |
Категория LC_CTYPE определяет правила обработки символов, которые управляют интерпретацией последовательностей байтов символов текстовых данных, классификацией символов и поведением классов символов. Эта категория управляет распознаванием верхнего и нижнего регистра, алфавитных и неалфавитных символов и т. д.
Описание
Параметр 0. Используйте его, если не нужно изменять языковой стандарт приложения.
Параметр 1. Используйте его, чтобы установить только системное значение
LC_CTYPEбез влияния на другие категорииLC_xxx.Параметр 2. Используйте
LC_ALLдля переопределения всех категорийLC_xxx, что влияет на приложение PHP и его расширения.
Если языковой стандарт для скрипта PHP отличается от стандарта системы, может потребоваться указать языковой стандарт в скрипте PHP, вызвав встроенную функцию PHP setlocale.
Например, если система по умолчанию имеет значение en_US.UTF-8, но скрипт PHP использует de_DE.UTF-8, тогда вызовите соответствующую функцию PHP setlocale().
В параметре 2 укажите требуемый языковой стандарт в скриптах PHP, только если он отличается от переменной LC_ALL.
Примечание.
Если в файле php.ini ничего не определено, текущим значением по умолчанию будет переопределение всех остальных параметров языкового стандарта на основе переменной LC_ALL, что будет нерекомендуемым. В ближайшем будущем значение по умолчанию будет игнорировать параметры языкового стандарта системы. Таким образом, пользователям потребуется соответствующим образом изменить файл php.ini, если нужно оставить текущее поведение.
Если включены оба драйвера, sqlsrv и pdo_sqlsrv, не рекомендуется задавать для них разные параметры.