Как узнать длину строки в PHP - strlen, mb_strlen

  • Последнее обновление: 3 Апреля 2024 г.
  • Просмотры: 33
  • Автор: Админ
Как узнать длину строки в PHP - strlen, mb_strlen

Коллеги всем привет.

В сегодняшней статье мы поговорим о том как узнать длину строки в PHP.

Каждый раз когда мы работаем со строковыми переменными или с другими объектами в php которые имеют отношения до строки, то нам очень часто нужно узнавать длину этой самой строки для дальнейшей её обратно. Задача кажется очень простой, но есть один очень важный нюанс, это кодировка. Функции в PHP которые подсчитывают размер строки, могут показывать разные значения, а значения длины будет зависеть от того какаю кодировку вы используете у себя на сайте.

В PHP есть несколько встроенных функций, которые определяю размер строки, и мы сегодня их рассмотрим.

 

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

php> strlen('Hellow World');

string length

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

В следующей примере я напишу текст тот же самый, но только на русском языке.

php> strlen('Привет мир');

string length

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

Так что при работе с этой функцией этот нюанс нужно учитывать.


 

Следующую функцию в примере мы будем использовать под названием mb_strlen. Функция mb_strlen принимает два параметра, первый обязательный параметр это обычная строка, а второй параметр не обязательный это кодировка. Разница между функциями strlen и mb_strlen в том что подсчет символов будет одинаковым как на английском, так и на русском языке. Даже если символ занимает несколько байт, то будет посчитан, как один байт.

php> mb_strlen("Hellow World");

php> mb_strlen("Привет мир");

string length


 

Всем спасибо, я надеюсь что вам моя статья хоть чем-то помогла.

ПОХОЖИЕ СТАТЬИ

Как получить расширение файла - PHP
Yii2 - как отключить CSRF валидацию токена
Как сгенерировать случайное и уникальное число в PHP
PNG формат, его особенности, плюсы и минусы