+7 495 008 8452 пн.-пт. 10:00 – 17:00
Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.


ТОЛЬКО для сайтов в кодировке WINDOWS-1251 (CP1251)

Важное примечание: Этот метод работает только для версии PHP ниже 8.2!

В PHP 8.2 и более поздних версиях внутренние функции преобразования регистра PHP стали независимыми от локали, что влияет на следующие функции:

    strtolower
    strtoupper
    lcfirst
    ucfirst
    ucwords
    stristr
    stripos
    strripos
    str_ireplace
В PHP 8.2 все приведенные выше функции выполняют преобразование регистра и сравнение только в диапазоне символов ASCII.


Проверка
echo strtoupper("ёпрст");

Должно вернуть ЁПРСТ, а возвращает ёпрст

Исправление на веб окружении битрикс:

установить русскую локаль для букв и стандартную локаль для чисел в /home/bitrix/ext_www/ваш сайт.рф/bitrix/php_interface/dbconn.php
setlocale(LC_ALL, 'ru_RU.CP1251');
setlocale(LC_NUMERIC,'C');


Если русская локаль ru_RU.CP1251 на самом сервере не установлена то делаем следующее

1. Проверяем локали из-под root (CentOs)
locale -a | grep ru_RU

2. Устанавливаем если не стоят
localedef -c -i ru_RU -f CP1251 ru_RU.CP1251

3. Тестируем
locale -a | grep ru_RU

4. Перезапускаем сервис httpd
service httpd restart





Назад в раздел

Подписаться на новые материалы раздела:












CAPTCHA