function escapeDuplicateWords($text)
{
// удаляем пробелы до/после строки
$text = trim($text);
// удаляем лишние пробелы внутри строки
$text = preg_replace('/\s\s+/', ' ', $text);
// повторяющиеся символы
$text = preg_replace('~(.)\1{2,}~ui', '\\1', $text);
// добавление проблема после .,
$text = preg_replace("#(\S\.|\S,)(\S)#i","$1 $2",$text);
// повторение слов
$text = preg_replace('/(\b\w+\b\s)(?=.?\1)/siu', '', $text);
return $text;
}
$str = 'Всем привет!!!! Кааааак дела????!!! :small: :small: :small::small:';
print escapeDuplicateWords($str);
// Всем привет! Как дела?! :small: :small: :small::small:
http://doramy.su/news/hiler_celitel_dorama_online_2014_smotret/2015-02-22-277