1

max_length[n] および min_length[n] 関数に組み込まれている codeigniter のフォーム検証が Unicode 文字を 1 文字としてカウントするのか、または使用されるすべての文字の合計が Unicode 文字を象徴するのかを誰かが知っているかどうか知りたいですか?

文字列を var_dump すると、すべての文字がカウントされることに気付きました。コード イグナイターまたは php に Unicode 文字をカウントする組み込み関数があるかどうか疑問に思っていますか?

ありがとう。

4

2 に答える 2

2

独自のコールバック検証を行うことができます:

$this->form_validation->set_rules('rule', 'The rule', 'callback_checkUnicode');

そして、ユニコード文字列をチェック>

public function checkUnicode($string)
{
    if (strlen($string) != strlen(utf8_decode($string)))
    {
            //is unicode: add your own counter condition here
        return true;
    }

    return false
}
于 2012-08-02T15:51:59.857 に答える
1

Codeigniter は、php のインストールでエンコーディング パラメータを渡すことができる場合、php の mb_strlen を使用します。問題は、CI が max_length[n] の可能なエンコーディングを渡す機能を提供しないことです...

エンコーディングを補うために必要な場合は、生の php だけで独自の検証を行った方がよい場合があります。

于 2012-08-02T15:45:59.993 に答える