文本区域值长度
Textarea value length
我正在尝试将文本区域中输入的 Unicode 字符数限制为 500 个。
当我尝试 post 表单并获取文本区域内容以在后端检查其长度时,我得到了双倍长度,这意味着我从 strlen 获得的值是输入字符数的两倍。
这里有什么问题?
<textarea id="ArticleSummary" name="ArticleSummary" rows="4" maxlength="500">
<?php echo $Summary; ?></textarea>
$Summary = trim( $_POST['ArticleSummary'] );
echo strlen($Summary);
unicode字符每个占2个字节,strlen returns字符串中的字节数,可以转成unicode字符查看长度
我不知道您从哪里获取变量 $Summary;但如果它比您要求的 500 个符号长,它将按原样发送。示例代码如下:
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<?php empty($_POST['ArticleSummary']) or var_dump(mb_strlen($_POST['ArticleSummary']));?>
<form method="POST" action="">
<?php $text = '123456789'; ?>
<textarea id="ArticleSummary" name="ArticleSummary" rows="4" maxlength="5"><?php echo $text;?></textarea>
<input value="submit" type="submit" />
</form>
</body>
</html>
~
我正在尝试将文本区域中输入的 Unicode 字符数限制为 500 个。
当我尝试 post 表单并获取文本区域内容以在后端检查其长度时,我得到了双倍长度,这意味着我从 strlen 获得的值是输入字符数的两倍。
这里有什么问题?
<textarea id="ArticleSummary" name="ArticleSummary" rows="4" maxlength="500">
<?php echo $Summary; ?></textarea>
$Summary = trim( $_POST['ArticleSummary'] );
echo strlen($Summary);
unicode字符每个占2个字节,strlen returns字符串中的字节数,可以转成unicode字符查看长度
我不知道您从哪里获取变量 $Summary;但如果它比您要求的 500 个符号长,它将按原样发送。示例代码如下:
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<?php empty($_POST['ArticleSummary']) or var_dump(mb_strlen($_POST['ArticleSummary']));?>
<form method="POST" action="">
<?php $text = '123456789'; ?>
<textarea id="ArticleSummary" name="ArticleSummary" rows="4" maxlength="5"><?php echo $text;?></textarea>
<input value="submit" type="submit" />
</form>
</body>
</html>
~