1

好奇是否有人知道 max_length[n] 和 min_length[n] 函数中内置的 codeigniter 表单验证是否将 unicode 字符计为 1 个字符,或者使用的所有字符的总和是否表示 unicode 字符?

我注意到当我对字符串进行 var_dump 时,它会计算所有字符,只是想知道 code igniter 或 php 是否有内置函数来计算 unicode 字符?

谢谢。

4

2 回答 2

2

您可以进行自己的回调验证:

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

并检查 unicode 字符串>

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 的 mb_strlen 如果它在你的 php 安装中可用,它允许传递编码参数,否则它默认为 php 的基本 strlength,它不允许你传递字符串编码。问题是 CI 不能让你传递 max_length[n] 的可能编码...

如果您需要它来补偿编码,最好只使用原始 php 滚动您自己的验证。

于 2012-08-02T15:45:59.993 回答