新聞中心
本文操作環(huán)境:Windows7系統(tǒng)、php7.4版、DELL G3電腦

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),臨湘企業(yè)網(wǎng)站建設(shè),臨湘品牌網(wǎng)站建設(shè),網(wǎng)站定制,臨湘網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,臨湘網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
php怎么截取頭一個中文亂碼?
php解決中文截取亂碼問題
針對截取字符串出現(xiàn)中文亂碼問題,網(wǎng)上有很多介紹,也有很多函數(shù),但筆者看著網(wǎng)上的函數(shù),總感覺有點(diǎn)別扭,
所以自己動手寫了一個防止截取字符串時出現(xiàn)中文亂碼的函數(shù)。
實現(xiàn)的原理還是比較簡單,主要是利用ASCII編碼和中文編碼的二進(jìn)制范圍不一致而把它們區(qū)分開來,然后,通過substr()截取字符串的函數(shù)實現(xiàn)的。
下面給出我寫的代碼,注意:我這里只針對utf-8編碼,其他編碼,看官可以自己手動改一下函數(shù),以便支持其他的編碼。
=$length){
return $str;
}
//初始化,統(tǒng)計字符串的個數(shù),
$count = 0;
for($i=0;$i<$length;$i++){
//達(dá)到個數(shù)跳出循環(huán),$i即為要截取的長度
if($count == $len){
break;
}
$count++;
//ord函數(shù)是獲取字符串的ASCII編碼,大于等于十六進(jìn)制0x80的字符串即為中文字符串
if(ord($str{$i}) >= 0x80){
$i +=2;//中文編碼的字符串的長度再加2
}
}
//如果要截取的個數(shù)超過了字符串的總個數(shù),那么我們返回全部字符串,不帶省略號
if($len > $count){
return $str;
}else{
return substr($str,0,$i).'...';
}
}
以上代碼的實現(xiàn)就是利用單字節(jié)字符的ASCII碼小于0x80。至于要跳過幾個字節(jié),這要看具體是什么編碼。
有什么錯誤,還望指出。
名稱欄目:php怎么截取頭一個中文亂碼
鏈接分享:http://m.5511xx.com/article/cccpsde.html


咨詢
建站咨詢
