Не работает регистронезависимость (флаг i) в регулярном выражении после переноса на новый хостинг. Кодировка windows-1251.
И текст и файл в нужной кодировке. Какой-то настройки не хватает на сервере?
$text = 'что-то написано ТЕКСТ что-то написано';
echo preg_replace('#текст#si', '', $text);
// выводит оригинальную строку из $text, ничего не вырезано
$text = 'что-то написано ТЕКСТ что-то написано';
echo preg_replace('#ТЕКСТ#si', '', $text);
// выводит строку с вырезанным ТЕКСТ.
Хоть флаг i указан, регулярка реагирует на регистр символов. Почему?
На старом хостинге всё работало. Переконвертировать в utf, вырезать текст и конвертировать обратно - не подходит. Потому что проблема вероятно появилась не в одном месте