2015-08-03 90 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> 
 
~