【发布时间】:2013-04-24 14:05:31
【问题描述】:
我有以下验证:
if (empty($errors) === true) {
if (strlen($_POST['Description']) > 250) { //strlen counts the number of bytes
$errors[] = 'Your description must be less than 250 characters long';
}
}
但如果用户输入的描述长度超过 30 个字符,则始终会显示此错误。我读过 strlen 返回字节数而不是字符串中的字符数。我试过 mb_strlen 来获取字符长度,但这也不起作用。我觉得我在做一些明显很愚蠢的事情,如果可以的话,请帮忙。
【问题讨论】:
-
输入语言是什么?你试过 mb_stren 吗?
-
来自 php.net/mb_strlen 如果您发现自己没有 mb 字符串函数并且无法轻松更改它,则 mb_strlen 的 utf8 字符的快速黑客替代方法是使用打开 utf8 的 PCRE 正则表达式. $strlen = preg_match_all("/.{1}/us",$utf8string,$dummy);这基本上是一个丑陋的 hack,它计算所有单个字符匹配,我希望它在大字符串上会非常缓慢。
标签: php string validation strlen