こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、11年目エンジニアです。
この記事では、 PHPでマルチバイトの文字列でも文字数を取得することができるmb_strlen関数について
- mb_strlen関数とは
- mb_strlen関数を使ったサンプルプログラム
と、丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
PHPのバージョン | 8.0.3 |
XAMPPのバージョン | 8.0.3 |
PHPを動かすためにXAMPPを使っています。
XAMPPのインストールは、下の記事をご参考ください。
mb_strlen関数とは
mb_strlen関数とは、引数に指定された文字列の文字数を返す関数です。
日本語のようなマルチバイトの文字列でも正確に文字数を取得することができます。
マルチバイトとは、1文字を表すのに2バイト以上のデータを使う文字のことです。
mbはマルチバイトを意味しています。
mb_strlen関数は使い方が
- パターン1:第一引数のみの場合
- パターン2:第二引数も指定した場合
の合計2パターンあります。
それぞれ解説します。
パターン1:第一引数のみの場合
第一引数のみの場合、第一引数の文字列の文字数を返します。
使い方サンプルは以下です。
1 2 |
$sample = 'サンプル'; $result = mb_strlen($sample); |
上記だと変数resultには「4」が返されます。
パターン2:第二引数も指定した場合
第二引数も指定した場合、第一引数の文字列は第二引数で指定した文字エンコーディングの文字列として文字数を返します。
mb_strlen関数のサンプルは以下になります。
1 2 |
$sample = 'サンプル'; $result = mb_strlen($sample, 'UTF-8'); |
上記だと変数resultには「4」が返されます。
第二引数に指定できる文字エンコーディングでよく使われるものは
- UTF-8
- ASCII
- EUC-JP
- SJIS
の4種類です。
では、次の章で実際に使ってみます。
mb_strlen関数を解説するプログラムの概要
mb_strlen関数を解説するプログラムでは、
- 英字のみの文字列
- 日本語のみの文字列
の2種類文字列を用意してそれぞれの文字列に対して
- 文字エンコーディングを設定しない
- 文字エンコーディングを設定した
の2パターンでmb_strlen関数を使って文字列の長さを取得し、結果を表示させます。
phpプログラムは
C:\xampp\htdocs
配下に、【mbstrlen.php】というファイル名で格納しています。
PHPサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php print('■mb_strlen関数サンプルプログラム<br />'); $str1 = 'abc'; $str2 = 'あいうえお'; print('・文字エンコーディングを設定しない場合<br />'); $result1 = mb_strlen($str1); $result2 = mb_strlen($str2); print($str1.'の文字数:' .$result1.'<br />'); print($str2.'の文字数:' .$result2.'<br />'); print('・文字エンコーディングを設定した場合<br />'); $result3 = mb_strlen($str1, 'UTF-8'); $result4 = mb_strlen($str2, 'UTF-8'); print($str1.'の文字数:' .$result3.'<br />'); print($str2.'の文字数:' .$result4.'<br />'); ?> |
実行結果
XAMPPを起動して、【http://localhost/mbstrlen.php】のURLにアクセスします。
XAMPPでPHPの動かし方については、こちらの記事をご参考ください。
英字でも日本語でも正しく文字列の長さが取得できていることが確認できました。
まとめ:mb_strlen関数を使ってみよう!
以上がmb_strlen関数についての解説でした。
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント