【PHP】文字列の文字数や長さを出力する関数「strlen()」「mb_strlen()」
今回はPHPで扱える、文字列の文字数や長さを出力する関数についてメモしていきます。φ(・_・”)メモメモ
はじめに 「文字列の文字数と長さって違うの?」
まず初めに、今回使用する「strlen」関数と「mb_strlen」関数を使い分けることができるように、「文字列の長さ」と「文字列の文字数」の違いについて確認しておきましょう。
まず「文字列の長さ」についてです。これはバイト数と呼ばれる数値で表示されます。
PHP7で確認していますが、基本的に「半角1文字=1」、「全角=3」という値を持っています。
一方で「文字列の文字数」というのはそのままの意味で、全角半角を問わず「1文字 = 1」としてカウントします。
これらの違いにより「strlen()」関数と「mb_strlen()」関数という二つを使い分けないといけないため注意が必要です。
文字列の長さを取得する関数 strlen()
strlen()は「文字列の長さ」を取得する関数です。さっそく例題を見てみましょう。
|
1 2 3 4 5 |
echo strlen("aiueo"); //5 が出力されます echo strlen("あいうえお"); //15 が出力されます echo strlen("aiuあいう"); //12 が出力されます |
上記の例のとおり、全角と半角により出力される値が異なります。どうやら環境によって全角1文字の値が「2」となることもあるようなので注意が必要そうです。
このように「文字列の長さ」を出力したい時は「strlen」関数を使用します。
文字列の文字数を取得する関数 mb_strlen()
mb_strlen()は文字列の文字数をカウントしてくれる関数です。こちらのほうが少し使用する頻度が高いかな?
さっそく例をみてましょう。
|
1 2 3 4 5 |
echo mb_strlen("aiueo"); //5 が出力されます echo mb_strlen("あいうえお"); //5 が出力されます echo mb_strlen("aiuあいう"); //6 が出力されます |
全角、半角を問わず、文字数をそのままカウントします。数字の桁数などの違いによって処理を変えたいときに活躍しそうですね。
まとめ
- 文字列の長さを出力したいときは「strlen()」を使う
- 文字列の文字数を出力したい時は「mb_strlen()」を使う
それでは今回はここまでです。お疲れ様でした(・ω・)ノシ