【问题标题】:Pound symbol (£) length or charset problem in Zend form ?Zend 形式的英镑符号 (£) 长度或字符集问题?
【发布时间】:2011-08-25 12:26:41
【问题描述】:

我的密码字段(Zend Form)允许字符串长度为 6,20

但是当我输入 "guru£"(string lenth 5:fasle) 时,它返回 true,没有 minlenth 错误,同时如果我输入 "guru££££" (string length: true),它返回 max lenth 错误.

谁能帮我重新评分这个。并在此先感谢-大师

【问题讨论】:

  • £是一个多字节字符,所以会在php中注册为两个字符

标签: php zend-framework character-encoding passwords zend-form


【解决方案1】:

您似乎在使用某种多字节字符编码,可能是 UTF-8。您必须明确告诉 Zend_Validate 以使其正常工作:

$validator->setEncoding("UTF-8");

或者您可以在创建验证器对象时这样做:

$validator = new Zend_Validate_StringLength(
    array('min' => 6, 'max' => 20, 'encoding' => 'UTF-8')
);

请参阅 Zend Framework 手册中的 Zend_Validate > Encoding of values

【讨论】:

  • 非常感谢破解。你节省了我很多时间和精力。你拥有出色的 zend 框架技能。
【解决方案2】:

您使用的是 Zend Validation 类吗?

http://framework.zend.com/manual/en/zend.validate.set.html

我认为特别值得注意的是使用不同的语言部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多