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

首頁 > 語言 > PHP > 正文

php substr中文亂碼解決辦法

2024-09-04 11:48:39
字體:
來源:轉載
供稿:網友

如果直接使用substr截取中文字符串肯定會出亂碼的,因為他會把一個漢字分成一半,為什么會這樣,因為機器內部編碼的問題,現在我們來看處理辦法

1、使用mbstring擴展庫的mb_substr截取就不會出現亂碼了。

2、自己書寫截取函數,但效率不如用mbstring擴展庫來得高。

3、如果僅是為了輸出截取的串,可用如下方式實現:substr($str, 0, 30).chr(0).

PHP實例代碼如下:

  1.  * 可以避免亂碼的截取漢字 
  2.  * 參數 $str 為字符串,$start 為開始字符,$len 結束字符 
  3.  * 返回截取后的字符 
  4.  */ 
  5. function msubstr($str$start$len) {  
  6.  $tmpstr = "";//開源代碼Vevb.com 
  7.  $strlen = $start + $len;  
  8.  for($i = 0; $i < $strlen$i++) {  
  9.   if(ord(substr($str$i, 1)) > 0xa0) {  
  10.    $tmpstr .= substr($str$i, 2);  
  11.    $i++;  
  12.   } else  
  13.    $tmpstr .= substr($str$i, 1);  
  14.  }  
  15.  return $tmpstr;  

方法二,php實現中文字串截取無亂碼的方法,代碼如下:

  1. function gbsubstr($string$start$length) { 
  2. if(strlen($string)>$length){ 
  3.    $str=null; 
  4.    $len=$start+$length
  5.    for($i=$start;$i<$len;$i++){ 
  6.     if(ord(substr($string,$i,1))>0xa0){ 
  7.      $str.=substr($string,$i,2); 
  8.      $i++; 
  9.     }else
  10.      $str.=substr($string,$i,1); 
  11.     } 
  12.    } 
  13.    return $str.'...'
  14. }else
  15.    return $string
  16. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宝应县| 南靖县| 满洲里市| 庆阳市| 从江县| 昌吉市| 丰台区| 禄丰县| 阿瓦提县| 大连市| 泰州市| 苗栗县| 五峰| 和硕县| 丰都县| 准格尔旗| 浑源县| 江津市| 西吉县| 屯昌县| 曲沃县| 尼木县| 湛江市| 苏尼特左旗| 汕头市| 水富县| 武强县| 余姚市| 新巴尔虎左旗| 鄢陵县| 霍山县| 潜山县| 延川县| 城步| 应城市| 祁阳县| 北宁市| 奉节县| 沙雅县| 重庆市| 乌审旗|