1、PHP 中如何正確統計中文字數?這個是困擾我很久的問題,PHP 中有很多函數可以計算字符串的長度,比如下面的例子,分別使用了 strlen,mb_strlen,mb_strwidth 這個三個函數去測試統計字符串的長度,看看把中文算成幾個字節:
echo strlen("你好ABC") . ""; # 輸出 9 echo mb_strlen("你好ABC", 'UTF-8') . ""; # 輸出 5 echo mb_strwidth("你好ABC") . ""; #輸出 7
從上面的測試,我們可以看出:strlen 把中文字符算成 3 個字節,mb_strlen 不管
</script>中文還是英文,都算 1 個字節,而 mb_strwidth 則把中文算成 2 個字節,所以 mb_strwidth 才是我們想要的:中文 2 個字節,英文 1 個字節。
同樣截取字符串也建議使用 mb_strimwidth,也是按照 中文 2 個字節,英文 1 個字節 方式計算之后的,并且如果字數超過截取的要求,這個函數還可以在最后面自動添加‘…'。
mb_strimwidth($post_excerpt,0,240,'...','utf-8');
注意,最后添加‘utf-8'編碼參數,可以避免中文截取亂碼的問題。
2、
<script type="text/javascript"> var len = $('#Form-field-Course-description').text().length; $('#Form-field-Course-description-group').append('<div id="txtNum" style="position: absolute;right: -50px;bottom: 18px;"></div>'); var len=$('#Form-field-Course-description').val().length; $('#txtNum').text(len+"/500"); $('#Form-field-Course-description').bind('input propertychange', function() { var val=$(this).val(); var len=val.length; if(len>500){ len=500; $(this).val(val.substring(0,500)); } $('#txtNum').text(len+"/500"); }); </script>
根據Octobercms后臺update獲取textarea長度,通過input,propertychange事件監聽事件
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對服務器之家的支持。