日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

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

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

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

在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.  }
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 精品国产一区二区三区麻豆小说 | 欧洲成人av | 亚洲国产精品一区二区久久,亚洲午夜 | 国产精品久久久久久久久久久久久久 | 91一区二区三区 | 国产一区二区三区精品在线观看 | 国产亚洲欧美另类一区二区三区 | 欧美精品一区二区三区在线 | 高清不卡 | 麻豆国产一区二区三区四区 | 成人三级电影网站 | 一区二区视频在线 | 成人福利在线视频 | 国产精品久久 | 成人永久免费 | 久久精品国产一区二区电影 | 欧美日韩精品一区二区三区 | 国产成人免费视频 | 久草福利在线视频 | 欧美日本片 | 免费视频三区 | 日韩一区二区在线播放 | 交视频在线观看国产 | 高清av网站 | 久久专区 | 国产小视频在线播放 | 欧美精品久久 | 精品成人免费一区二区在线播放 | 日韩福利 | 亚洲欧美日韩中文在线 | 在线欧美一区 | 日韩激情在线观看 | 精品一区二区视频 | 久久精品国产亚洲一区二区三区 | 亚洲国产精品尤物yw在线观看 | 日日噜噜噜夜夜狠狠久久蜜桃 | 国产亚洲精品久久久久久 | 国产精品一区二区三区久久久 | 天天操夜夜干 | 亚洲综合在线播放 | www.日韩高清 |