Funkcja mb_strlen

Funkcja mb_strlen zwraca liczbę znaków w ciągu, poprawnie pracując z kodowaniami wielobajtowymi (na przykład UTF-8). W przeciwieństwie do strlen, poprawnie zlicza znaki zajmujące kilka bajtów. Jako pierwszy parametr przyjmuje ciąg znaków, jako drugi (opcjonalny) - kodowanie.

Składnia

phpmb_strlen(string, [encoding]);

Przykład

Zliczanie długości ciągu w UTF-8:

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

Wynik wykonania kodu:

php6

Przykład

Porównanie z strlen dla cyrylicy:

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

Wynik wykonania kodu:

phpstrlen: 8
mb_strlen: 4

Przykład

Użycie bez podawania kodowania (kodowanie jest pobierane z mb_internal_encoding):

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

Wynik wykonania kodu:

php5

Zobacz też

  • funkcję strlen,
    która zwraca długość ciągu znaków w bajtach
  • funkcję mb_substr,
    która wycina podciąg z uwzględnieniem kodowania