今回は「文字列の長さ(=文字数)を取得する」方法を紹介します。
TwitterなどのWEBサービスでは入力できる文字数に制限がありますが、
ユーザーが入力した文字の文字数がわからなければ、チェックができません。
まずはサンプルプログラムをみてみましょう。
<?php $moji = "おはよう"; echo mb_strlen($moji); //mb_strlen("おはよう") でも同じ
mb_strlenはPHP側であらかじめ定義された文字列に関する関数(=function)で、
requireなどをしなくても使えます。
mbはマルチバイトを意味しています。マルチバイトについては別途書きたいと思いますが、
ここでは、日本語を扱う(英語だけじゃなくて)場合はマルチバイトを扱ってるんだ、
と思って下さい。
strlenはString(=文字列)のStrと、Length(=長さ)のLenの合成です。
文字列の長さ=文字数ということになります。
mb_strlen(文字数を知りたい文字列);
という形式で利用し、返り値(かえりち)として文字数が返ってきます。
「おはよう」は4文字なので、4と画面に表示されます。
mb_strlenはマルチバイトを扱うという関数ですが、単純なstrlenという関数もあります。
サンプルプログラムをみてみましょう。
<?php $moji = "おはよう"; echo strlen($moji);
結果は12となりました。どういうことかというと、
strlenは文字数ではなく、バイト数を返します。
日本語の1文字というのは3バイトというバイト数を使用します。
(バイトについてはまたどこかで書きたいと思います)
従って、4文字✕3バイトで12を表示しているのです。
ただし、「abcd」の文字数を知りたいのでであれば、アルファベットは
1文字につき1バイトなので4と表示されます。
なので、基本的にはmb_strlenを利用することをオススメします。