Компьютерные Технологии в Обучении Изучение PHP на практических примерах
  256ПрограммированиеPHPПосчитать количество слов в предложении

Задача. Посчитать количество слов в предложении

Используйте функции trim, preg_replace, explode или preg_split или mb_str_split, count

Вариант 1. Работает в PHP 5, 7, 8

<?php
$sentence_source = ' Посчитать количество слов в предложении ';

$sentence= trim($sentence_source); // Удалить лидирующие и концевые пробелы
$sentence = preg_replace("/ +/", " ", $sentence); // Множественные пробелы заменить на одинарные

$arr_words = explode(' ', $sentence); // Разделить строку на отдельные слова, используя пробел как разделитель. Результат записать в массив

$count_words = count($arr_words); // Посчитать количество элементов в массиве

// Вывести результат в браузер
echo "<p>$sentence</p>";
echo "<p>Количество слов в предложении: $count_words</p>";
?>

Вариант 2. Работает в PHP 5, 7, 8

<?php
$sentence= trim($sentence_source); // Удалить лидирующие и концевые пробелы
$sentence = preg_replace("/ +/", " ", $sentence); // Множественные пробелы заменить на одинарные

$arr_words = preg_split('/[ ]+/', $sentence); // Разделить строку на отдельные слова, используя пробел как разделитель. Результат записать в массив

$count_words = count($arr_words); // Посчитать количество элементов в массиве

// Вывести результат в браузер
echo "<p>$sentence</p>";
echo "<p>Количество слов в предложении: $count_words</p>";
?>

Вариант 3. Можно использовать, начиная с PHP 7.4 и в PHP 8.x

<?php
$sentence= trim($sentence_source); // Удалить лидирующие и концевые пробелы
$sentence = preg_replace("/ +/", " ", $sentence); // Множественные пробелы заменить на одинарные

$arr_chars = mb_str_split($sentence); // Преобразовать строку в массив символов

$lenght = count($arr_chars); // Посчитать количество элементов в массиве
if ($lenght > 0) $count_words = 1; // Если есть хотя бы один символ, то его считаем за слово
else $count_words = 0; // Если строка пустая, то в ней 0 слов

for ($i=0; $i<$lenght; $i++) { // Цикл для прохода по всему массиву
if ($arr_chars[$i] == ' ') $count_words++; // Если встретился пробел, то увеличиваем счётчик слов
}

// Вывести результат в браузер
echo "<p>$sentence</p>";
echo "<p>Количество символов в предложении: $lenght</p>";
echo "<p>Количество слов в предложении: $count_words</p>";
?>

Вариант 4. PHP 7.4, PHP 8.x

<?php
$sentence= trim($sentence_source); // Удалить лидирующие и концевые пробелы
$sentence = preg_replace('/[\s]{2,}/u', ' ', $sentence); // Множественные пробелы заменить на одинарные. Используется другой вариант шаблона регулярного выражения

$arr_chars = mb_str_split($sentence); // Преобразовать строку в массив символов

// Установить начальное значение счётчика слов
if (!empty($arr_chars)) $count_words = 1; // Если в массиве есть хотя бы один элемент, то в строке есть минимум одно слово
else $count_words = 0; // Если строка пустая, то в ней 0 слов

foreach ($arr_chars as $char) // Цикл для прохода по всему массиву
if ($char == ' ') $count_words++; // Если встретился пробел, то увеличиваем счётчик слов
// Вывести результат в браузер
echo "<p>$sentence</p>";
echo "<p>Количество символов в предложении: $lenght</p>";
echo "<p>Количество слов в предложении: $count_words</p>";
?>

Результат

Посчитать количество слов в предложении

Количество символов в предложении: 39

Количество слов в предложении: 5

Рекламный блок

Информационный блок