本篇內容介紹了“php中substr()截取中文字符亂碼的問題怎么解決”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
創新互聯憑借在網站建設、網站推廣領域領先的技術能力和多年的行業經驗,為客戶提供超值的營銷型網站建設服務,我們始終認為:好的營銷型網站就是好的業務員。我們已成功為企業單位、個人等客戶提供了成都做網站、網站制作、成都外貿網站建設服務,以良好的商業信譽,完善的服務及深厚的技術力量處于同行領先地位。首先要明確這么一個問題,之所以會出現IE6偶爾無法加載CSS的現象,是因為文件出現了亂碼,導致后面的加載CSS的link無法被IE6正確解析。因此就看到了一個純HTML頁面,沒有CSS,赤裸裸!明確了問題,剩下的問題就好解決了,就是防止亂碼,既然萬戈所提供的函數出現了亂碼,就重新去找了一個php函數來解決這個亂碼的問題。
substr()函數可以分割文字,但要分割的文字如果包括中文字符往往會遇到問題。
mb_substr()這個函數的用法與substr()相似,只是在最后要加入多一個參數,以設定字符串的編碼。
通過這里大幾就應該理解我改進萬戈方法的原因了~~
下面再介紹幾個更高級處理辦法
例1
代碼如下
function func_chgtitle($str,$len) { //$length我們允許字符串顯示的較大長度 $tmpstr = ""; $strlen = $len; for($i = 0; $i < $strlen; $i++) { if(ord(substr($str, $i, 1)) > 0xa0) { $tmpstr .= substr($str, $i, 2); $i++; } else $tmpstr .= substr($str, $i, 1); } return $tmpstr; }
例2
字符串編碼為UTF-8的,一個中文字符占三個字節:
public static function chinesesubstr($str, $start, $len) { // $str指字符串,$start指字符串的起始位置,$len指字符串長度
$strlen = $start + $len; // 用$strlen存儲字符串的總長度,即從字符串的起始位置到字符串的總長度
代碼如下
for($i = $start; $i < $strlen;) { if (ord ( substr ( $str, $i, 1 ) ) > 0xa0) { // 如果字符串中首個字節的ASCII序數 值大于0xa0,則表示漢字 $tmpstr .= substr ( $str, $i, 3 ); // 每次取出三位字符賦給變量$tmpstr,即等 于一個漢字 $i=$i+3; // 變量自加3 } else{ $tmpstr .= substr ( $str, $i, 1 ); // 如果不是漢字,則每次取出一位字符賦給 變量$tmpstr $i++; } } return $tmpstr; // 返回字符串 }
“php中substr()截取中文字符亂碼的問題怎么解決”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注創新互聯網站,小編將為大家輸出更多高質量的實用文章!
網頁題目:php中substr()截取中文字符亂碼的問題怎么解決-創新互聯
標題鏈接:http://m.newbst.com/article44/djhhee.html
成都網站建設公司_創新互聯,為您提供搜索引擎優化、響應式網站、網站設計公司、電子商務、面包屑導航、企業網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯