PHP. mb_str_replace - замена строки в русском тексте


Создание функции для замены строки в тексте на русском языке в кодировке utf-8.


По молчанию, на момент написания статьи в PHP отсутствует функция для замены слов в кириллическом тексте.
По этому, если вам потребовалось произвести замену строки в кодировке utf-8, то можно написать свою функцию mb_str_replace.

  1. Воспользуемся функцией mb_detect_encoding для определения кодировки исходного текста, в котором будет осуществлен поиск.
    Полученный результат запишем в переменную $charset.
    $charset = mb_detect_encoding($string);

  2. Преобразуем текстовую строку из исходной кодировки в кодировку utf-8 с помощью функции iconv и присвоим переменной $unicodeString.
    $unicodeString = iconv($charset, "UTF-8", $string);

  3. Завершающим этапом будет поиск и замена строк в конвертированном тексте из переменной $unicodeString с помощью функции str_replace.
    str_replace($search, $replace, $unicodeString);


Полученные строки кода заключаем в функцию и присваиваем ей название - "mb_str_replace".
Первый параметр данной функции будет принимать строку, которую необходимо найти в тексте.
Второй параметр принимает строку на которую будет производиться замена.
Третий параметр, строка исходного текста.

Таким образом получилась функция следующего содержания:
function mb_str_replace($search, $replace, $string)
{
    $charset = mb_detect_encoding($string);

    $unicodeString = iconv($charset, "UTF-8", $string);
    
    return str_replace($search, $replace, $unicodeString);
}

Проверка:
Проверяем работоспособность функции.
Ищем слово "Исходный " в строке "Исходный кириллический текст для проверки" и заменяем на "".
echo mb_str_replace('Исходный ', '', 'Исходный кириллический текст для проверки');

Результат:
"кириллический текст для проверки"
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.