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

首頁 > 開發 > PHP > 正文

php substr()函數截取中文字符串亂碼

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

在php中如果我要用substr()截取字符串全英文的沒問題,如果包括有中文或英文就會悲劇了,但大家也 別切我們可以使用其它辦法來解決.

php截取中文字符串出現亂碼,這是最近發現的事情,先前我曾經寫過一篇關于自動生成meta信息的文章,那篇關于利用php截取文章前多少字作為description方法,但是出現了IE6無法加載CSS的現象,這里做一個補充。

首先要明確這么一個問題,之所以會出現IE6偶爾無法加載CSS的現象,是因為文件出現了亂碼,導致后面的加載CSS的link無法被IE6正確解析,因此就看到了一個純HTML頁面,沒有CSS,赤裸裸!

明確了問題,剩下的問題就好解決了,就是防止亂碼,既然萬戈所提供的函數出現了亂碼,就重新去找了一個php函數來解決這個亂碼的問題。

substr()函數可以分割文字,但要分割的文字如果包括中文字符往往會遇到問題。

mb_substr()這個函數的用法與substr()相似,只是在最后要加入多一個參數,以設定字符串的編碼,通過這里大幾就應該理解我改進萬戈方法的原因了~~下面再介紹幾個更高級處理辦法

例1代碼如下:

  1. function func_chgtitle($str,$len) { //$length我們允許字符串顯示的最大長度     
  2.     $tmpstr = ""
  3.     $strlen = $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

例2字符串編碼為UTF-8的,一個中文字符占三個字節:

  1. public static function chinesesubstr($str$start$len) { // $str指字符串,$start指字符串的 
  2.  
  3. 起始位置,$len指字符串長度 
  4.         $strlen = $start + $len// 用$strlen存儲字符串的總長度,即從字符串的起始位置到字符 
  5. 串的總長度 
  6.  代碼如下 復制代碼 
  7.         for($i = $start$i < $strlen;) { 
  8.             if (ord ( substr ( $str$i, 1 ) ) > 0xa0) { // 如果字符串中首個字節的ASCII序數 
  9. 值大于0xa0,則表示漢字 
  10.                 $tmpstr .= substr ( $str$i, 3 ); // 每次取出三位字符賦給變量$tmpstr,即等 
  11. 于一個漢字 
  12.                 $i=$i+3; // 變量自加3 
  13.             } else
  14.                 $tmpstr .= substr ( $str$i, 1 ); // 如果不是漢字,則每次取出一位字符賦給 
  15. 變量$tmpstr 
  16.                 $i++; 
  17.             } 
  18.         } 
  19.         return $tmpstr// 返回字符串 
  20.     } 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 读书| 永兴县| 巴塘县| 巴马| 拜泉县| 白沙| 荔波县| 徐水县| 固始县| 松桃| 汝城县| 兴和县| 阿坝| 南召县| 秭归县| 万年县| 化隆| 涪陵区| 咸宁市| 林州市| 临西县| 资兴市| 清镇市| 桑植县| 南陵县| 罗山县| 新安县| 介休市| 新田县| 微山县| 滕州市| 永兴县| 嘉荫县| 平遥县| 绵阳市| 江阴市| 汶川县| 安塞县| 赞皇县| 河津市| 肥东县|