0

我有以下验证:

    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 来获取字符长度,但这也不起作用。我觉得我在做一些明显愚蠢的事情,如果可以,请提供帮助。

4

1 回答 1

0

老实说,我不知道任何使用 8 个字节作为字符的编码。

我认为您的 "$_POST['Description']" 可能不仅仅包含您想要的数据。

做一个

 var_dump($_POST['Description'])

看看它显示了什么。

旁注:

if (strlen(trim($_POST['Description'])) > 250)

防止空格导致验证失败。

另请注意,您必须为 mb_strlen 指定编码,因为发送的字符编码可能与内部编码不同。

于 2013-04-24T14:13:08.420 回答