PHP

PHP 文字列の文字数をカウントするstrlen,mb_strlenの使い方

2015/08/19

文字列の文字数をカウントする方法です。

strlen」「mb_strlen」を使用することで、()内の値が何バイトなのか、何文字なのか調べることが出来ます。「strlen」も「mb_strlen」も記述方法は同じです。

strlen(値);
mb_strlen(値);

strlen

「strlen」はバイト数を返してくれます。半角は1バイト、全角は文字コードや文字によって異なるようです。
下記例は「UTF-8」で、ひらがなの場合ほぼ?全部?1文字3バイトのようです。

<?php
    $x = "abcdefg";
    echo "変数xは".strlen($x)."バイトです。<br>";

    $y = "あいうえおかきくけこさしすせそ";
    echo "変数yは".strlen($y)."バイトです。<br>";
?>

» 実行結果
 

mb_strlen

「mb_strlen」は半角でも全角でも「1文字に対して1」の文字数を返してくれます。

<?php
    $x = "abcdefg";
    echo "変数xは".mb_strlen($x)."文字です。<br>";

    $y = "あいうえおかきくけこさしすせそ";
    echo "変数yは".mb_strlen($y)."文字です。<br>";
?>

» 実行結果
 

最後に・・・

「mb_strlen」で正しい文字数が表示されない場合、php.iniの設定を変更する必要があります。

php.iniの設定を確認するには下記を実行します。

<?php
    phpinfo();
?>

このブログ(ロリポップ)の場合、管理画面からphp.iniの設定で、「mbstring.language」を「Japanese」に、「mbstring.internal_encoding」を「UTF-8」にすることで正常に動作させる事ができました。
大体のレンタルサーバーは管理画面から設定が出来ると思います。

xamppの場合、phpinfo()実行時の「Loaded Configuration File」に表示されてあるディレクトリにphp.iniファイルがあると思いますので、直接修正します。

設定方法は、「XAMPPをインストールしてローカル開発環境を作ろう」のMYSQLとPHPの初期設定をご覧ください。

-PHP