2012-08-02 37 views
1

好奇,如果有人知道如果codeigniter的表单验证内置在max_length [n]和min_length [n]函数统计unicode字符为1个字符或所有使用的字符的总和符号化unicode字符?代码点火器形式验证最小值最大长度统一码字符的长度?

我注意到当我var_dump字符串它计数所有的字符,只是想知道如果代码点燃器或PHP有一个内置函数来统计unicode字符?

谢谢。

回答

1

Codeigniter使用php的mb_strlen,如果它的PHP安装允许传递编码参数,否则它默认为php的基本字符串,它不允许你传递字符串编码。麻烦的是,CI没有给你传递max_length [n]可能的编码的能力...

如果你需要它来补偿编码,你可能会更好地服务滚动自己的验证只是生PHP。

+0

嗯。好吧,这可能是我会做的。看起来像这可能是他们应该在未来的升级中添加的东西。 – Rooster 2012-08-02 17:50:52

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 
}