我有以下验证:
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来获取字符长度,但这也不起作用。我觉得我做的事情显然是愚蠢的,请尽可能帮忙。
答案 0 :(得分:0)
老实说,我不知道任何使用8字节的字符编码。
我认为您“$ _POST ['Description']”可能不仅包含您想要的数据。
做一个
var_dump($_POST['Description'])
看看它显示了什么。
旁注:
if (strlen(trim($_POST['Description'])) > 250)
阻止空格导致验证失败。
另请注意,您必须为mb_strlen指定编码,因为发送的字符编码可能与内部编码不同。