Кажется я на такой вопрос уже отвечал вот так: PHP: <? //хренушки: с UTF-8 не прокатит фокус, нужно заморачиваться с multibyte setlocale(LC_ALL, 'ru_RU.CP1251', 'rus_RUS.CP1251', 'Russian_Russia.1251', 'CP1251'); $text = 'раз два три раз два триста one two three one two threeteen'; //такое регулярное выражение найдёт повторы слов более двух раз preg_match_all('/\b(\w+)\b(?=.*?\b\1\b)/si', $text, $k); $words = array_unique($k[1]); $res = array(); foreach($words as $v) $res[$v] = substr_count($text, $v); arsort($res); echo iconv('CP1251', 'UTF-8', print_r($res, 1)); //а такое захватывает не только слова, но и повторяющиеся фразы preg_match_all('/\b(\w+(?:\s+\w+)*)\b(?=.*?\b\1\b)/si', $text, $k); $words = array_unique($k[1]); $res = array(); foreach($words as $v) $res[$v] = substr_count($text, $v); arsort($res); echo iconv('CP1251', 'UTF-8', print_r($res, 1)); ?> Если локаль установилась правильно, то будет так: Код (Text): Array ( [two] => 2 [one] => 2 [два] => 2 [раз] => 2 ) Array ( [one two] => 2 [раз два] => 2 ) Или так: Fatal error: Call to undefined function iconv() in /home/rpg/test.php on line ... Тогда нужно поставить iconv или убрать его из скрипта (у меня консоль в юникоде просто)