Справочники, инструменты, документация

PHP: Выделение уникальных слов в тексте

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

Эта функция выделяет из текста в $text все уникальные слова и возвращает их список. В необязательный параметр $nOrigWords помещается исходное число слов в тексте, которое было до фильтрации дубликатов.

function getUniques($text, &$nOrigWords=false) {
 // Сначала получаем все слова в тексте.
 $words = preg_split("/([^[:alnum:]]|['-])+/s", $text);
 $nOrigWords = count($words);
 // Затем приводим слова к нижнему регистру.
 $words = array_map("mb_strtolower", $words);
 // Получаем уникальные значения.
 $words = array_unique($words);
 return $words;
}
// Пример применения функции.
setlocale(LC_ALL, '');
$fname = "largetextfile.txt";
$text = file_get_contents($fname);
$uniq = getUniques($text, $nOrig);
echo "Было слов: $nOrig<br>";
echo "Стало слов: ".count($uniq)."<hr>";
echo join(" ", $uniq);