Рекламный блок
Задача. Посчитать количество слов в предложении
Используйте функции 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>";
?>
$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>";
?>
$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++) { // Цикл для прохода по всему массиву
// Вывести результат в браузер
echo "<p>$sentence</p>";
echo "<p>Количество символов в предложении: $lenght</p>";
echo "<p>Количество слов в предложении: $count_words</p>";
?>
$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) // Цикл для прохода по всему массиву
echo "<p>$sentence</p>";
echo "<p>Количество символов в предложении: $lenght</p>";
echo "<p>Количество слов в предложении: $count_words</p>";
?>
$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