国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

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

2024-05-04 21:56:58
字體:
來源:轉載
供稿:網友

在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.  }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 崇州市| 贡嘎县| 铜陵市| 定兴县| 玉环县| 千阳县| 拉萨市| 磐石市| 长兴县| 和田市| 辽阳市| 贵州省| 巫溪县| 宜阳县| 措美县| 蓬溪县| 金川县| 沛县| 龙岩市| 许昌县| 广平县| 长武县| 陈巴尔虎旗| 商河县| 胶南市| 宁化县| 瓮安县| 万源市| 晋州市| 九台市| 新沂市| 新宁县| 平度市| 连云港市| 灵山县| 平阴县| 叙永县| 沙雅县| 佛学| 长汀县| 佛山市|