文字列の文字数をカウントする方法です。
「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の初期設定をご覧ください。
コメント