В языке программирования PHP строковые функции (например, strlen, substr, preg_replace_callback, preg_match и другие) при использовании регулярных выражений выдают некорректные результаты, если в строке имеются символы национального алфавита в кодировке utf-8. Подробнее смотрим тут: http://www.phpwact.org/php/i18n/utf-8 (Английский!). Обещают в php6 исправить.
Столкнулась при установке плагина symple-syn для WordPress (синонимайзер), для замены слов синонимами. Нужно было именно для русского текста в кодировке utf-8.
Замена строки 25 в плагине symple-syn для WP
$content=preg_replace_callback('#([a-zA-Z]+)#is','repl',$content);
на
$content=preg_replace_callback('#([а-яА-Я]+)#is','repl',$content);
не решила проблему, на выходе получалась полнейшая чушь, резались слова прямо посередине, текст сокращался, бывало, впоть до одного слова.
В итоге делаем та
Читать