関数 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,
    エンコーディングを考慮して部分文字列を切り出します