如果有人知道在max_length [n]和min_length [n]函数中构建的codeigniter表单验证是否将unicode字符计为1个字符,或者所用的所有字符的总和是否代表unicode字符,那就很奇怪了?
我注意到当var_dump字符串时它会计算所有字符,只是想知道代码点火器或php是否有内置函数来计算unicode字符?
感谢。
答案 0 :(得分: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
}
答案 1 :(得分:1)
Codeigniter使用php的mb_strlen,如果它在你的php安装上可用,它允许传递一个编码参数,否则它默认为php的基本strlength,它不允许你传递字符串编码。麻烦的是CI不能让你传递max_length [n] ...
的可能编码如果你需要它来补偿编码,你可能会更好地使用原始php来自己进行验证。