Функция mb_strlen

Функция mb_strlen возвращает количество символов в строке, корректно работая с многобайтовыми кодировками (например, UTF-8). В отличие от strlen, она правильно подсчитывает символы, занимающие несколько байт. Первым параметром принимает строку, вторым (необязательным) - кодировку.

Синтаксис

phpmb_strlen(string, [encoding]);

Пример

Подсчет длины строки в UTF-8:

php<?php
  $res = mb_strlen('Привет', 'UTF-8');
  echo $res;
?>

Результат выполнения кода:

php6

Пример

Сравнение с strlen для кириллицы:

php<?php
  $str = 'тест';
  echo 'strlen: ' . strlen($str) . '<br>';
  echo 'mb_strlen: ' . mb_strlen($str, 'UTF-8');
?>

Результат выполнения кода:

phpstrlen: 8
mb_strlen: 4

Пример

Использование без указания кодировки (кодировка берется из mb_internal_encoding):

php<?php
  echo mb_strlen('abcde');
?>

Результат выполнения кода:

php5

Смотрите также

  • функцию strlen,
    которая возвращает длину строки в байтах
  • функцию mb_substr,
    которая вырезает подстроку с учетом кодировки