Эта тема на forum.dklab.ru


ekzarov: str_ireplace и кодировка
Опять проблема с пресловутым str_ireplace. Меняет нормально но учитывает регистр.
Код:
$my_string = str_ireplace($key_word, '<span class="highlighted">' . $key_word . '</span>', $subject);

Прбовал перед этим писать setlocale(LC_ALL, 'ru', 'ru_RU', 'ru_RU.cp1251' ) - не помогает.
Обыскал весь интернет. Не нашёл ничего. Прошу помощи. Спасибо.
bæv:
Обыскал весь интернет. Не нашёл ничего.
— не верю. Всё есть в мануале: http://ru2.php.net/manual/ru/function.setlocale.php

Название локали зависит от операционной системы. (А в конкретном случае нужная локаль может и не быть установлена вообще.)

Если у Вас windows с установленной русской кодовой страницей, то достаточно тупо запустить пример из мануала, только заменив немецкие локали Вашей строкой.
Результат «волшебным образом» выведет правильное название локали.
Anonymous:
Тестирую на хостинг сервере: Apache/2.2.9 (Unix)

$loc = setlocale(LC_ALL, 'ru_RU');
echo "На этой системе локаль имеет имя '$loc'";
// Выводит "ru_RU"

$foo = 'Скидки';
print(str_ireplace('скидки', 'Заменили', $foo));

// Выводит "Скидки", т.е. функция не отработала
bæv:
Я ж неспроста писал про «Если у Вас windows» — что там конкретный хостер под *nix настроил заранее предугадать нельзя.

Попробуйте вариант с 'ru_RU.cp1251': возможно, что у Вас по умолчанию локаль KOI8.

В любом случае, Вам с самого начала надо было к хостеру обращаться.
Хостер должен точно знать, что у него установлено и как настроено.

Эта тема на forum.dklab.ru