#php
#php
Вопрос:
Я пытаюсь подсчитать количество слов в абзацах текстов. Прямо сейчас я использую str_word_count
, и все идет отлично, за исключением того, что одинарные кавычки все портят.
Функция считает 'propter'
и propter
как разные слова. Он также считает et'
и et
, 'non
и non
как разные слова.
Как я могу заставить функцию игнорировать одиночные кавычки. Весь текст написан на латыни, поэтому в словах нет одиночных кавычек (если это имеет какое-либо значение).
Комментарии:
1. Вы пытались использовать
str_replace("'", '', $str)
перед использованиемstr_word_cound
?
Ответ №1:
Вы всегда можете удалить одинарные кавычки перед использованием str_word_count()
.
Ответ №2:
Немного хакерское решение, но вы должны быть в состоянии сделать:
$count = str_word_count(str_replace("'",'',$str));
… и получите желаемый ответ, учитывая приведенные выше примеры проблем.
Редактировать
Если вы пытаетесь получить количество уникальных слов в отрывке, как предложил Пабло М. Прието, вы можете сделать это следующим образом:
$count = count(array_unique(str_word_count(strtolower(str_replace("'",'',$str)),1)));
Ответ №3:
На самом деле, это поведение str_word_count()
функции по умолчанию. Подсчитывает количество слов в абзаце.
Так что, если у вас есть:
$paragraph = "Lorem ipsum dolor sit amet 'lorem' ipsum 'dolor'";
и
$paragraph = "Lorem ipsum dolor sit amet lorem ipsum dolor";
он вернет int(8) для них обоих.
Вы пытались подсчитать количество уникальных слов в абзаце?