PHP. mb_str_replace - замена строки в русском тексте
Данный материал предоставлен сайтом
PacificSky.Ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Создание функции для замены строки в тексте на русском языке в кодировке utf-8.
По молчанию, на момент написания статьи в PHP отсутствует функция для замены слов в кириллическом тексте.
По этому, если вам потребовалось произвести замену строки в кодировке utf-8, то можно написать свою функцию mb_str_replace.
- Воспользуемся функцией mb_detect_encoding для определения кодировки исходного текста, в котором будет осуществлен поиск.
Полученный результат запишем в переменную $charset.$charset = mb_detect_encoding($string);
- Преобразуем текстовую строку из исходной кодировки в кодировку utf-8 с помощью функции iconv и присвоим переменной $unicodeString.
$unicodeString = iconv($charset, "UTF-8", $string);
- Завершающим этапом будет поиск и замена строк в конвертированном тексте из переменной $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('Исходный ', '', 'Исходный кириллический текст для проверки');
Результат:
"кириллический текст для проверки"
Комментариев 1
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.