Bezdepbonusu7Программирование: статьи и ответы

Вопрос

PHP: замена условной кодировки в preg_replace

Автор вопроса: ndiОтветов: 1

У меня есть сайт, записанный в переменную $html.

теперь я хочу заменить некоторые символы этим выражением

$string1 = preg_replace('/[^A-Za-z0-9äöü!&_=\+-]/i', ' ', $string);

Проблема в том, что существуют специальные символы, вызванные разными кодировками.

У меня есть переменная $charset, в которой сохраняется строка кодировки страницы. то есть $charset="utf-8" или iso-8859-1 в utf-8 это немецкая буква ü я хочу заменить в iso-8859-1 это ü

Есть ли возможность указать функцию замены в соответствии с кодировкой страницы без создания отдельных регулярных выражений для каждой возможной кодировки?

  • если вы знаете наборы символов, вы можете использовать php.net/manual/ de/function.mb-convert-encoding.php Hannes 22.09.2010
  • спасибо, я искал это ndi 22.09.2010

phpregexreplacecharacter-encoding

Ответы

Ответ 1 · matsolof

Или вы можете попробовать добавить

utf8_encode($string);

ПРЯМО ПЕРЕД preg_replace. Я не уверен, что это решит вашу проблему, но может.

Для получения дополнительной информации см.: http://se2.php.net/manual/en/function.utf8-encode.php.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы