PHP實時統(tǒng)計中文字數(shù)和區(qū)別
1、PHP 中如何正確統(tǒng)計中文字數(shù)?這個是困擾我很久的問題,PHP 中有很多函數(shù)可以計算字符串的長度,比如下面的例子,分別使用了 strlen,mb_strlen,mb_strwidth 這個三個函數(shù)去測試統(tǒng)計字符串的長度,看看把中文算成幾個字節(jié):
echo strlen("你好ABC") . "";
# 輸出 9
echo mb_strlen("你好ABC", 'UTF-8') . "";
# 輸出 5
echo mb_strwidth("你好ABC") . "";
#輸出 7
從上面的測試,我們可以看出:strlen 把中文字符算成 3 個字節(jié),mb_strlen 不管
</script>中文還是英文,都算 1 個字節(jié),而 mb_strwidth 則把中文算成 2 個字節(jié),所以 mb_strwidth 才是我們想要的:中文 2 個字節(jié),英文 1 個字節(jié)。
同樣截取字符串也建議使用 mb_strimwidth,也是按照 中文 2 個字節(jié),英文 1 個字節(jié) 方式計算之后的,并且如果字數(shù)超過截取的要求,這個函數(shù)還可以在最后面自動添加‘…'。
mb_strimwidth($post_excerpt,0,240,'...','utf-8');
注意,最后添加‘utf-8'編碼參數(shù),可以避免中文截取亂碼的問題。
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>
根據(jù)Octobercms后臺update獲取textarea長度,通過input,propertychange事件監(jiān)聽事件
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內(nèi)容請查看下面相關鏈接
相關文章
php如何實現(xiàn)不借助IDE快速定位行數(shù)或者方法定義的文件和位置
這篇文章主要介紹了php如何實現(xiàn)不借助IDE快速定位行數(shù)或者方法定義的文件和位置的相關資料,需要的朋友可以參考下2017-01-01
JS(jQuery)實現(xiàn)聊天接收到消息語言自動提醒功能詳解【提示“您有新的消息請注意查收”】
這篇文章主要介紹了JS(jQuery)實現(xiàn)聊天接收到消息語言自動提醒功能,結(jié)合實例形式詳細分析了javascript結(jié)合ajax后臺交互實現(xiàn)信息語音提示功能相關原理與操作技巧,需要的朋友可以參考下2019-04-04
PHP基于Redis消息隊列實現(xiàn)發(fā)布微博的方法
這篇文章主要介紹了PHP基于Redis消息隊列實現(xiàn)發(fā)布微博的方法,結(jié)合實例形式分析了php+redis數(shù)據(jù)庫的安裝、連接、讀取、插入等相關操作技巧,需要的朋友可以參考下2017-05-05
php swoole多進程/多線程用法示例【基于php7nts版】
這篇文章主要介紹了php swoole多進程/多線程用法,結(jié)合實例形式分析了基于php7nts版使用swoole進行多線程創(chuàng)建、調(diào)用相關操作技巧,需要的朋友可以參考下2019-08-08

