PHPで文字列の文字数とバイト数を数える

PHPで文字列の文字数とバイト数を数える

PHPPHPで文字列の文字数とバイト数を数える

Web アプリで入力フォームを扱うと、エラーチェック(Validate)が必要になります。一般的には、未入力チェックや入力文字数オーバーが多いですが、この入力文字数の基準が難しいところです。文字数の基準は、入力された文字列を保持するデータベースやファイルなど、仕様によって決まってきますが、文字列のバイト数を見るのか文字数を見るのかで大きく考え方が変わってきます。

例えば、Oracle の VARCHAR2 型のように文字列がバイト数で扱われると、全角と半角の混在も含めてバイト数で考える必要があります。逆に MySQL(厳密にはMySQL4.1以上)の VARCHAR 型のように文字数で考える場合はバイト数を意識する必要がありません。

どちらにしても、PHP にはバイト数を取得する関数と文字数を取得する関数がそれぞれ用意されているのでそれを使用します。ただ、バイト数で扱わないといけない場合は、エラーメッセージの出力方法も一工夫必要ですね。100 バイトが上限だと、半角の場合は 100 文字、全角の場合は 50 文字が許容範囲で、全角と半角が半分ずつ混在すると 75 文字。こんな時は 50 文字でエラー制限するつもりで、データベースの定義も考えないといけないですね。

s = "あいうえお";

// バイト数
n1 = strlen(s);

// 文字数
n2 = mb_strlen(s);

[結果]
n1:10
n2:5

最終更新日:

関連記事

人気記事

新着情報