2015-08-03 60 views
0

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

这里有什么问题?

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

是否'mb_strlen()'给一个更好的结果? – Barmar

+0

@Barmar是的,就是这样。 strlen()计算每个unicode字符两次。谢谢! –

回答

1

Unicode字符采取各2个字节和strlen的返回字符串中的字节数,可以将其转化为Unicode字符,并检查长度。

0

我不知道从哪里你正在服用的变量$总结;但如果是长于你需要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> 
 
~