Textarea值长度

时间:2015-08-03 10:47:45

标签: php html textarea

我试图将textarea中输入的unicode字符数限制为500 当我尝试发布表单并获取textarea内容以检查后端的长度时,我得到一个双倍长度,这意味着我从strlen得到的值是输入字符数的两倍。

这里有什么问题?

<textarea id="ArticleSummary" name="ArticleSummary" rows="4" maxlength="500">
 <?php echo $Summary; ?></textarea>
  $Summary = trim( $_POST['ArticleSummary'] );
  echo strlen($Summary);

2 个答案:

答案 0 :(得分:1)

unicode字符每个占用2个字节,strlen返回字符串中的字节数,您可以将其转换为unicode字符并检查长度。

答案 1 :(得分:0)

我不知道你从哪里获取变量$ Summary;但如果它超过你要求的500个标志,它将按原样发送。示例代码如下:

&#13;
&#13;
<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>
~                    
&#13;
&#13;
&#13;