タグ「PHP」の投稿を表示中

PHPで全角&半角ストリングの文字数を取得する

PHPでは英文ストリングの文字数はstrlen関数で取得することが多いですが、これでは全角文字が「2文字」として認識されてしまいます。 例: echo strlen(“あいうえお”);//”10″が出力されます。 echo strlen(“abcde”);//”5″が出力されます。 これは半角文字は1バイト、全角文字は2バイトで表されるためです。 全角文字も半角文字も「1文字」として認識させるためにはmb_strlen関数を使います。 例: echo mb_strlen(“あいうえお”);//”5″が出力されます。 echo mb_strlen(“abcde”);//”5″が出力されます。 正しく動作しない場合 なお、動作させるサーバーのPHPの内部エンコーディングは”UTF-8″でないと正しく動作しない可能性があります。内部エンコーディングは.htaccessファイルやmb_internal_encoding関数で設定することが可能ですが、php.iniであらかじめ設定しておくと手っ取り早いです。 php.iniファイルにmbstring.internal_encodingが”EUC-JP”とかではなく、以下のように”UTF-8″として設定されていることをご確認ください。 mbstring.internal_encoding = UTF-8