Str replace php кириллица

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

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

Преобразуем текстовую строку из исходной кодировки в кодировку utf-8 с помощью функции iconv и присвоим переменной $unicodeString.

  • Завершающим этапом будет поиск и замена строк в конвертированном тексте из переменной $unicodeString с помощью функции str_replace.
    str_replace($search, $replace, $unicodeString);
  • Полученные строки кода заключаем в функцию и присваиваем ей название — "mb_str_replace".

    Таким образом получилась функция следующего содержания:

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

    если объяснять по-простому: проблема в разнице кодировки кода и строк,
    которые приходят со стороны (db/scraping/http requests/etc).
    соответственно, их нужно привести к одному знаменателю.

    пример скрипта в UTF-8 и строки в WIN-1251.

    s77lanselot77s: может быть все что угодно.
    поднимите на локалке виртуалку с максимально приблеженным к серверу образом и тестируйте.

    лично я не сталкивался с исчезновением кириллицы, только с ее неверным отображением.

    Подскажите, как вы выходите из положения когда нужно вырезать какое-то кириллическое слово, букву из текста. ( str_replace не работает)
    Пробовал самописные функции по типу mb_str_replace — ни одна не дала должного результата.

    Пример:
    Допустим у нас есть строка: $calc = "1ч20мин+1ч50мин";
    И из нее нужно убрать "мин".

    Или же более сложные случаи, где много спарсенного текста (начальная кодировка заранее неизвестна) и в нем нужно что-то изменить.

    Читайте также:  Аудиосистема composition media для фольксваген тигуан

    2 ответа 2

    Если исходная кодировка заранее неизвестна и например нужно привести текст к общей кодировке utf-8.

    Вы делаете что-то неправильно, функция str_replace успешно работает на данном кейсе.

    mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

    Если Вы хотите перевести строку в другую кодировку, воспользуйтесь функцией iconv

    Rate this post

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *