HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>В этой статье мы рассмотрим, как в PHP вычисляется<strong>длина строки</strong>. Поговорим про известную функцию<strong>strlen</strong>и расскажем про нюансы её работы.</p>
1 <p>В этой статье мы рассмотрим, как в PHP вычисляется<strong>длина строки</strong>. Поговорим про известную функцию<strong>strlen</strong>и расскажем про нюансы её работы.</p>
2 <p>Итак, начнём с того, что заключим нужный текст в переменную - это позволит нам в последующем удобнее обращаться к нашей текстовой информации. К примеру:</p>
2 <p>Итак, начнём с того, что заключим нужный текст в переменную - это позволит нам в последующем удобнее обращаться к нашей текстовой информации. К примеру:</p>
3 <p>Будем считать, что строка у нас есть, поэтому осталось определить её длину. Сделать это можно, используя всем известную функцию strlen. Единственным и обязательным параметром данной функции является строка, число символов в которой мы считаем:</p>
3 <p>Будем считать, что строка у нас есть, поэтому осталось определить её длину. Сделать это можно, используя всем известную функцию strlen. Единственным и обязательным параметром данной функции является строка, число символов в которой мы считаем:</p>
4 <p>Функция работает предельно просто: принимает строку и возвращает в качестве результата определённое значение, которое, кстати, вы потом сможете применять в своих скриптах и функциях. При этом удобнее будет сделать так:</p>
4 <p>Функция работает предельно просто: принимает строку и возвращает в качестве результата определённое значение, которое, кстати, вы потом сможете применять в своих скриптах и функциях. При этом удобнее будет сделать так:</p>
5 <p>Таким образом мы записали в переменную xlength длину строки $x. Когда же надо вывести длину строки на экран, воспользуйтесь хорошо известным echo:</p>
5 <p>Таким образом мы записали в переменную xlength длину строки $x. Когда же надо вывести длину строки на экран, воспользуйтесь хорошо известным echo:</p>
6 <p>Но это в том случае, если мы уже создали данную переменную, иначе можно записать код следующим образом:</p>
6 <p>Но это в том случае, если мы уже создали данную переменную, иначе можно записать код следующим образом:</p>
7 <p>То есть ничего сложного, как видите, нет. Если же говорить о том, где в реальной практике может использоваться нахождение длины строки, то это, например, поле для ввода какого-нибудь текста, позволяющее определить размер статьи в режиме онлайн.</p>
7 <p>То есть ничего сложного, как видите, нет. Если же говорить о том, где в реальной практике может использоваться нахождение длины строки, то это, например, поле для ввода какого-нибудь текста, позволяющее определить размер статьи в режиме онлайн.</p>
8 <h2>Каковы нюансы в работе функции strlen?</h2>
8 <h2>Каковы нюансы в работе функции strlen?</h2>
9 <p>Следует учитывать, что функция вычисляет<strong>количество байт в строке string, а не привычное нам число символов</strong>. И тут всё зависит от кодировки:</p>
9 <p>Следует учитывать, что функция вычисляет<strong>количество байт в строке string, а не привычное нам число символов</strong>. И тут всё зависит от кодировки:</p>
10 &lt;?php // В кодировке windows-1251 $str = 'Я учусь в OTUS'; echo strlen($str); // 14 // В кодировке utf-8 $str = 'Я учусь в OTUS'; echo strlen($str); // 25 ?&gt;<p>В нашем случае русские буквы в юникоде занимают 2 байта, в результате чего длина одной буквы становится равной двум: 11 букв * 2 + 3 пробела = 25. Это важная особенность.</p>
10 &lt;?php // В кодировке windows-1251 $str = 'Я учусь в OTUS'; echo strlen($str); // 14 // В кодировке utf-8 $str = 'Я учусь в OTUS'; echo strlen($str); // 25 ?&gt;<p>В нашем случае русские буквы в юникоде занимают 2 байта, в результате чего длина одной буквы становится равной двум: 11 букв * 2 + 3 пробела = 25. Это важная особенность.</p>
11 <p>Кроме того, если в измеряемой нами строке символы отсутствуют, функция вернет значение 0. Также не стоит использовать strlen для расчёта длины массива, т. к. вернётся NULL.</p>
11 <p>Кроме того, если в измеряемой нами строке символы отсутствуют, функция вернет значение 0. Также не стоит использовать strlen для расчёта длины массива, т. к. вернётся NULL.</p>
12 <p>Ещё существует функция<strong>iconv_strlen</strong>, позволяющая нам в качестве второго параметра указывать кодировку:</p>
12 <p>Ещё существует функция<strong>iconv_strlen</strong>, позволяющая нам в качестве второго параметра указывать кодировку:</p>
13 $x = iconv_strlen('строка нашего текста', 'UTF-8');<p>Как посчитать число слов в строке? Необходимость в этом тоже иногда возникает. В PHP для выполнения данной задачи есть функция<strong>str_word_count</strong>. Она имеет 2 основных параметра, которые обязательны. Первый - сама строка, число слов в которой нас интересует. Второй - формат, в котором будет выведено значение. Возможно использование и третьего параметра -<strong>charlist</strong>, в котором можно указывать список дополнительных символов, которые функция посчитает как слова. Но этот параметр необязателен, к тому же, обычно в таких излишествах нет надобности.</p>
13 $x = iconv_strlen('строка нашего текста', 'UTF-8');<p>Как посчитать число слов в строке? Необходимость в этом тоже иногда возникает. В PHP для выполнения данной задачи есть функция<strong>str_word_count</strong>. Она имеет 2 основных параметра, которые обязательны. Первый - сама строка, число слов в которой нас интересует. Второй - формат, в котором будет выведено значение. Возможно использование и третьего параметра -<strong>charlist</strong>, в котором можно указывать список дополнительных символов, которые функция посчитает как слова. Но этот параметр необязателен, к тому же, обычно в таких излишествах нет надобности.</p>
14 <p>Что касается параметра<strong>format</strong>, то он способен принимать три значения: - 0 - просто возвращается количество найденных слов; - 1 - массив слов, входящих в строку; - 2 - массив со словами, причём индекс каждого слова - это его позиция в строке.</p>
14 <p>Что касается параметра<strong>format</strong>, то он способен принимать три значения: - 0 - просто возвращается количество найденных слов; - 1 - массив слов, входящих в строку; - 2 - массив со словами, причём индекс каждого слова - это его позиция в строке.</p>
15 <p>Пример:</p>
15 <p>Пример:</p>
16 $x = "строка нашего текста"; str_word_count($x, 0);<h2>Используем strlen и конструкцию if else</h2>
16 $x = "строка нашего текста"; str_word_count($x, 0);<h2>Используем strlen и конструкцию if else</h2>
17 <p>В некоторых задачах на PHP нужно определить, превышает ли длина нашей строки какой-нибудь предел, например, десять. Такие задачки решаются через конструкцию if else:</p>
17 <p>В некоторых задачах на PHP нужно определить, превышает ли длина нашей строки какой-нибудь предел, например, десять. Такие задачки решаются через конструкцию if else:</p>
18 &lt;?php $string = "Длина вашей строки"; $count = strlen($string); if ($count &gt; 10) { echo "В вашей строке больше 10 символов."; } elseif ($count == 10) { echo "В вашей строке ровно 10 символов."; } else { echo "В вашей строке меньше 10 символов."; } ?&gt;<p>Пожалуй, на этом всё, успешного вам обучения!</p>
18 &lt;?php $string = "Длина вашей строки"; $count = strlen($string); if ($count &gt; 10) { echo "В вашей строке больше 10 символов."; } elseif ($count == 10) { echo "В вашей строке ровно 10 символов."; } else { echo "В вашей строке меньше 10 символов."; } ?&gt;<p>Пожалуй, на этом всё, успешного вам обучения!</p>
19 <p><em>Источники</em>: • "<a>Как узнать длину строки в PHP</a>"; • "<a>Как вычислить в php длину строки?</a>"; • "<a>Как узнать длину строки (PHP)</a>".</p>
19 <p><em>Источники</em>: • "<a>Как узнать длину строки в PHP</a>"; • "<a>Как вычислить в php длину строки?</a>"; • "<a>Как узнать длину строки (PHP)</a>".</p>
20 <p>Интересуют продвинутые знания по PHP? Добро пожаловать на специализированный курс.</p>
20 <p>Интересуют продвинутые знания по PHP? Добро пожаловать на специализированный курс.</p>
21  
21