echo "テキストを入力:";
$a = trim(fgets(STDIN));
echo strlen($a) . "文字あります。";
↑は半角英数字に対応
テキストの文字数を調べるには「strlen」という関数を使う。
「strlen」は、引数にテキストを渡して呼び出すと、そのてきすとの文字数を返してくれる。
日本語にも対応するために以下に修正↓
echo "テキストを入力:";
$a = trim(fgets(STDIN));
echo mb_strlen($a,'sjis') . "文字あります。";
↑に書いたように日本語で正しく働く文字数チェックの関数は「mb_strlen」という。
日本語で正しくテキストを扱えるようにする関数はたいてい頭に「mb_」がつく。
したがって、strlenの日本語版はmb_strlenということである。
この名前のルールさえわかっていれば日本語で使う場合の関数を悩むことはないだろう。
このmb_strlenは、ただ調べたいテキストを渡すだけでも一応は使えるが、それだけだは正確に文字数を得られないことがある。
正しく値を得るには、第2引数に調べるテキストのエンコーディングを指定してやる。
ここではシフトJISを使っているので、'sjis'と指定してやると、正確に日本語の文字数が得られるようになる。