mb_strlen関数についての注意点

mb_strlen関数は明確にエンコードが指定されていない場合、
想定しない文字数を返す場合があるので注意すること。

文字数の中に改行コードが含まれている場合、その分も二文字としてカウントされる。
改行コードを考慮しない場合、改行コードをstr_replace関数で空文字に
置き換えてカウントする必要がある。

コーディング例
$l_errmsg = mb_strlen(str_replace("\r\n","",$this -> arg_message),"UTF-8");
if (trim($l_errmsg) > 520) {
$this -> err_flg = true;
$this -> err_msg["message"] = "520文字以上の入力はできません。";
}
上記の例は、520文字以上の入力をエラーとしている例である。
文字コードは"UTF-8"としている。
スポンサーサイト

コメントの投稿

非公開コメント

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます
プロフィール

e.swan

Author:e.swan
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR