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

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

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

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

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

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

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


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


Ответы (1)


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

utf8_encode($string);

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

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

person matsolof    schedule 22.09.2010