Как найти длину строки в PHP?

В этой статье мы рассмотрим, как в PHP вычисляется длина строки. Поговорим про известную функцию strlen и расскажем про нюансы её работы.

Итак, начнём с того, что заключим нужный текст в переменную — это позволит нам в последующем удобнее обращаться к нашей текстовой информации. К примеру:

$x = "Я учусь в OTUS";

Будем считать, что строка у нас есть, поэтому осталось определить её длину. Сделать это можно, используя всем известную функцию strlen. Единственным и обязательным параметром данной функции является строка, число символов в которой мы считаем:

strlen ($x);

Функция работает предельно просто: принимает строку и возвращает в качестве результата определённое значение, которое, кстати, вы потом сможете применять в своих скриптах и функциях. При этом удобнее будет сделать так:

$xlength = strlen($x);

Таким образом мы записали в переменную xlength длину строки $x. Когда же надо вывести длину строки на экран, воспользуйтесь хорошо известным echo:

echo $xlength;

Но это в том случае, если мы уже создали данную переменную, иначе можно записать код следующим образом:

echo strlen ($x);

То есть ничего сложного, как видите, нет. Если же говорить о том, где в реальной практике может использоваться нахождение длины строки, то это, например, поле для ввода какого-нибудь текста, позволяющее определить размер статьи в режиме онлайн.

Каковы нюансы в работе функции strlen?

Следует учитывать, что функция вычисляет количество байт в строке string, а не привычное нам число символов. И тут всё зависит от кодировки:

<?php
// В кодировке windows-1251
$str = 'Я учусь в OTUS';
echo strlen($str); // 14
// В кодировке utf-8
$str = 'Я учусь в OTUS';
echo strlen($str); // 25
?>

В нашем случае русские буквы в юникоде занимают 2 байта, в результате чего длина одной буквы становится равной двум: 11 букв * 2 + 3 пробела = 25. Это важная особенность.

Кроме того, если в измеряемой нами строке символы отсутствуют, функция вернет значение 0. Также не стоит использовать strlen для расчёта длины массива, т. к. вернётся NULL.

Ещё существует функция iconv_strlen, позволяющая нам в качестве второго параметра указывать кодировку:

$x = iconv_strlen('строка нашего текста', 'UTF-8');

Как посчитать число слов в строке? Необходимость в этом тоже иногда возникает. В PHP для выполнения данной задачи есть функция str_word_count. Она имеет 2 основных параметра, которые обязательны. Первый — сама строка, число слов в которой нас интересует. Второй — формат, в котором будет выведено значение. Возможно использование и третьего параметра — charlist, в котором можно указывать список дополнительных символов, которые функция посчитает как слова. Но этот параметр необязателен, к тому же, обычно в таких излишествах нет надобности.

Что касается параметра format, то он способен принимать три значения: — 0 — просто возвращается количество найденных слов; — 1 — массив слов, входящих в строку; — 2 — массив со словами, причём индекс каждого слова — это его позиция в строке.

Пример:

$x = "строка нашего текста";
str_word_count($x, 0);

Используем strlen и конструкцию if else

В некоторых задачах на PHP нужно определить, превышает ли длина нашей строки какой-нибудь предел, например, десять. Такие задачки решаются через конструкцию if else:

<?php
  $string = "Длина вашей строки";
  $count = strlen($string);
  if ($count > 10) {
   echo "В вашей строке больше 10 символов.";
  }
  elseif ($count == 10) {
   echo "В вашей строке ровно 10 символов.";
  }
  else {
   echo "В вашей строке меньше 10 символов.";
  }
?>

Пожалуй, на этом всё, успешного вам обучения!

Источники: • «Как узнать длину строки в PHP»; • «Как вычислить в php длину строки?»; • «Как узнать длину строки (PHP)».

Интересуют продвинутые знания по PHP? Добро пожаловать на специализированный курс.