Як дізнатися довжину рядка в PHP - strlen, mb_strlen

  • Останнє оновлення: 3 Листопада 2023 р.
  • Перегляди: 160
  • Автор: Адмін
Як дізнатися довжину рядка в 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


 

Всім дякую, я сподіваюся, що вам моя стаття хоч чимось допомогла.

СХОЖІ СТАТТІ

YII2 defaultRoute - Як змінити контролер за замовчуванням у шаблоні

YII2 defaultRoute - Як змінити контролер за замовчуванням у шаблоні

Панель пошуку на чистому HTML/CSS

Панель пошуку на чистому HTML/CSS

HTML/CSS - Розгорнута анімація панелі пошуку

HTML/CSS - Розгорнута анімація панелі пошуку