-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcount.php
More file actions
35 lines (31 loc) · 4.88 KB
/
Copy pathcount.php
File metadata and controls
35 lines (31 loc) · 4.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
// добавляем исходный техт в переменную, здесь по хорошему так, как это PHP стоит задуматься о кодировках дабы не выползли карказябры
$text_to_count = "Исследователями из разных лабораторий неоднократно наблюдалось, как линза сжимает погранслой. Сверхновая, в согласии с традиционными представлениями, растягивает вихрь. Линза сжимает ультрафиолетовый магнит. Плазменное образование притягивает квазар. Жидкость, как того требуют законы термодинамики, испускает квантово-механический фотон.
Осциллятор излучает гамма-квант. Возмущение плотности переворачивает луч без обмена зарядами или спинами. Плазма, вследствие квантового характера явления, пространственно сжимает резонатор, и это неудивительно, если вспомнить квантовый характер явления.
Зеркало масштабирует нестационарный лептон. Гидродинамический удар вращает элементарный кварк. Непосредственно из законов сохранения следует, что разрыв оптически стабилен. Квантовое состояние, в согласии с традиционными представлениями, недетерминировано сжимает экситон.
Погранслой вращает торсионный газ. Не только в вакууме, но и в любой нейтральной среде относительно низкой плотности квантовое состояние испускает наносекундный фронт. Плазма сжимает спиральный поток, и это неудивительно, если вспомнить квантовый характер явления.";
$char_to_delete = [".","-","...","!","*","?",',',",","\n","\n\r", '\n\r', "\n", '\n']; // задаем массив непечатаемых символов и прочих для их удаления
$probeli = [' ',' ',' ',' ',' ']; // задаем массив строк с различными вариантами пробелов для их отлова и удаления
$text_without_char = str_replace($char_to_delete,'', $text_to_count); // чистим текст от лишних символов, можно конечно исползовать REGEXP
$text_without_probeli = str_replace($probeli,' ', $text_without_char); // чистим текст от 2-х и более пробелов
$text_to_array = explode(' ',trim(mb_strtolower($text_without_probeli))); // добавляем текст в массив так, чтобы кажде слово было отдельным его элементом
echo '-------------------- В этом тексте: ';
echo count ($text_to_array)+1; // считаем и выводим количество элементов массива, получаем количество слов и добавляем 1 так, как массив нумеруется с индекса 0
echo ' слов(а). --------------------';
echo PHP_EOL;
$array_assoc = []; // объявляем пустой массив
$word = 0; // объявляем переменную для счетчика слов
for ($i = 0; $i <= count($text_to_array); $i++) // для каждого элемента массива с нашими словами сравниваем его с самим собой и если есть совпадение увеличиваем переменную которую в качестве ключа записываем
{
foreach ($text_to_array as $value) {if ($value == $text_to_array[$i]) $word++ ;}
$array_assoc[$text_to_array[$i]]= $word; // в ассоциативный массив который при вхождении слова более одного раза перезапишет последнее значение
$word = 0; // обнуляем переменную счетчик слов
}
$values = array_values ($array_assoc); // выводим каждый ключ значение массива %array_assoc где ключ - слово, значение - частота появления в текстее
$keys = array_keys ($array_assoc);
for ($i = 0; $i <= count($array_assoc); $i++)
{
echo $keys[$i].' - '.$values[$i];
echo PHP_EOL;
}
?>