<?php
error_reporting(-1);
mb_internal_encoding('utf-8');

$text = <<<EOF
Никто из них не заметил, как за окном пролетела большая сова-неясыть.
— Ух, ты моя крошка, — со смехом выдавил из себя мистер Дурсль, выходя из дома.
Он сел в машину и выехал со двора.
— И привидится же такое! — буркнул мистер Дурсль.
— Э… Петунья, дорогая… Ты давно не получала известий от своей сестры?
— Давно! — отрезала миссис Дурсль. — А почему ты спрашиваешь?
— И что? — резким тоном перебила его миссис Дурсль.
— Ну, я подумал… Может быть… Может, это как-то связано с… Ну, ты понимаешь… С такими, как она…
И решил, что не осмелится. Вместо этого он произнес как бы между прочим:
— Их сын — он ведь ровесник Дадли, верно?
— Полагаю, да. — Голос миссис Дурсль был холоден как лед.
— Не напомнишь мне, как его зовут? Гарольд, кажется?
— Гарри. На мой взгляд, мерзкое, простонародное имя.
— О, конечно. — Мистер Дурсль ощутил, как екнуло сердце. — Я с тобой полностью согласен.
Мистер Дурсль глубоко заблуждался, но пока не знал об этом.
— Это следовало ожидать, — пробормотал он, усмехнувшись.
— Странно видеть вас здесь, профессор МакГонагалл.
— Как вы меня узнали? — спросила она.
как-то как-то как-то, как_то как_то 
EOF;

$text = mb_strtolower($text);
$words = [];
$wordFounder = "/[\p{L}\-\_]+/ui";
$count = preg_match_all($wordFounder, $text, $pregResult);
$result = [];
$words = $pregResult[0];
$result = array_count_values($words);
arsort($result);
	
echo "Всего слов в тексте - $count.\n";

foreach ($result as $word => $count) {
	echo "$word - встречается $count раз.\n";
}

