多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > php substr截斷漢字亂碼解決辦法

php substr截斷漢字亂碼解決辦法

來源:程序員人生   發布時間:2014-04-08 23:51:24 閱讀次數:2954次

在php中substr是用來截取字符的,但是有朋友會發現把它來截英文字母是沒有任何問題,但是如果截中文時會出現半個漢字亂碼了,下面我來介紹一些解決辦法.

substr() 函數返回字符串的一部分。

語法:substr(string,start,length)

實例代碼如下:

  1. <?php 
  2. echo substr("Hello world!",6); 
  3. ?> 

輸出 world!

實例代碼如下:echo substr('中國文',1);

結果就是籌碼了,后來才知道中文與英文的區別在于內編碼了,一個網站這樣說到substr函數在截取字符時是按字節來截取的,中文字符在GB2312編碼時為2個字節,utf-8編碼時為3個字節,所以截取指定長度的字符串時如果截斷了漢字,那么返回的結果顯示出來便會出現亂碼.

解決辦法:1、利用mb_substr來截取,代碼如下:

  1. <?php  
  2. $str = '這樣一來我的字符串就不會有亂碼^_^'
  3. echo "mb_substr:" . mb_substr($str, 0, 7, 'utf-8');  
  4. //結果:這樣一來我的字  
  5. echo "<br>"
  6. echo "mb_strcut:" . mb_strcut($str, 0, 6, 'utf-8');  
  7. //結果:這樣  
  8. ?> 

但是如果要使用mb_substr截取我們需要使用使用mbstring擴展庫,如果沒有權限的朋友我們就可參考下面函數,代碼如下:

  1. function msubstr($str$start$len) {  
  2.   $tmpstr = ""
  3.   $strlen = $start + $len;  
  4.   for($i = 0; $i < $strlen$i++) {  
  5.    if(ord(substr($str$i, 1)) > 0xa0) {  
  6.     $tmpstr .= substr($str$i, 2);  
  7.     $i++;  
  8.    } else  
  9.     $tmpstr .= substr($str$i, 1);  
  10.   }  
  11.   return $tmpstr;  
  12.  }
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 手机看片欧美日韩 | 男人天堂亚洲色图 | 免费观看性欧美特黄 | 欧美精品一区二区久久 | 欧美色图亚洲综合 | 久久国产精品亚洲77777 | 一区二区三区精品 | 午夜视频网 | 国产乱辈通伦影片在线播放 | 性8成人有声小说在线播放 性freemovies中国群众 | 欧美一线天 | 春色网站 | c看欧美激情毛片 | 欧美亚洲精品一区 | 国产精品久久久久久久免费大片 | 国产精品视频网 | 欧美久久一区二区三区 | 久久精品亚洲欧美va | 精品视频在线观看一区二区三区 | 91精品国产一区二区三区左线 | 98国内自拍在线视频 | 亚洲视频456 | 亚洲免费视频播放 | 成人网免费视频 | 好吊妞精品 | 在线观看视频免费播放 | 五月婷婷综合在线 | japanbabes日本护士18免费 | 久久久久久一品道精品免费看 | free xxx性欧美hd| 亚洲精品视频久久久 | 国产精品麻豆高清在线观看 | 毛片免费永久不卡视频观看 | 91久久综合九色综合欧美98 | 欧美性猛交乱大交xxxx | 成人毛片18女人毛片免费视频未 | 免费国产精成人品 | 一级特黄aa大片一又好看 | 性欧美一级 | 国内精品久久久久影院老司 | 欧美一区二区三区国产精品 |