成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

PHP截取utf-8字符串的具體方法介紹

開發 后端
UTF-8編碼的字符可能由1~3個字節組成,我們在這里將為大家具體講解有關PHP截取utf-8字符串的方法,希望對大家有所幫助。

我們對PHP語言都已經不再陌生,它是一個很常用的語言。今天我們將向大家介紹的是有關PHP截取utf-8字符串的相關方法。為了支持多語言,數據庫里的字符串可能保存為UTF-8編碼,在網站開發中可能需要用php截取字符串的一部分。為了避免出現亂碼現象,編寫如下的UTF-8字符串截取函數。

#t#關于utf-8的原理請看 UTF-8 FAQ

UTF-8編碼的字符可能由1~3個字節組成, 具體數目可以由第一個字節判斷出來。(理論上可能更長,但這里假設不超過3個字節)
第一個字節大于224的,它與它之后的2個字節一起組成一個UTF-8字符
第一個字節大于192小于224的,它與它之后的1個字節組成一個UTF-8字符
否則第一個字節本身就是一個英文字符(包括數字和一小部分標點符號)。

以前為某網站設計的代碼(也是現在用在首頁的長度截取的函數)

PHP截取utf-8字符串的代碼示例:

  1. < ?php // Cut_Str;  
  2. //$sourcestr 是要處理的字符串  
  3. //$cutlength 為截取的長度(即字數)  
  4. function cut_str($sourcestr,$cutlength)  
  5. {  
  6. $returnstr=”;  
  7. $i=0;  
  8. $n=0;  
  9. $str_length=strlen($sourcestr);//字符串的字節數  
  10. while (($n<$cutlength) and ($i<=$str_length))  
  11. {  
  12. $temp_str=substr($sourcestr,$i,1);  
  13. $ascnum=Ord($temp_str);//得到字符串中第$i位字符的ascii碼  
  14. if ($ascnum>=224) //如果ASCII位高與224,  
  15. {  
  16. $returnstr=$returnstr.substr($sourcestr,$i,3); 
    //根據UTF-8編碼規范,將3個連續的字符計為單個字符  
  17. $i=$i+3; //實際Byte計為3  
  18. $n++; //字串長度計1  
  19. }  
  20. elseif ($ascnum>=192) //如果ASCII位高與192,  
  21. {  
  22. $returnstr=$returnstr.substr($sourcestr,$i,2);
     //根據UTF-8編碼規范,將2個連續的字符計為單個字符  
  23. $i=$i+2; //實際Byte計為2  
  24. $n++; //字串長度計1  
  25. }  
  26. elseif ($ascnum>=65 && $ascnum<=90) 
    //如果是大寫字母,  
  27. {  
  28. $returnstr=$returnstr.substr($sourcestr,$i,1);  
  29. $i=$i+1; //實際的Byte數仍計1個  
  30. $n++; //但考慮整體美觀,大寫字母計成一個高位字符  
  31. }  
  32. else //其他情況下,包括小寫字母和半角標點符號,  
  33. {  
  34. $returnstr=$returnstr.substr($sourcestr,$i,1);  
  35. $i=$i+1; //實際的Byte數計1個  
  36. $n=$n+0.5; //小寫字母和半角標點等與半個高位字符寬…  
  37. }  
  38. }  
  39. if ($str_length>$cutlength){  
  40. $returnstr = $returnstr . “…”;
    //超過長度時在尾處加上省略號  
  41. }  
  42. return $returnstr;  

以上就是PHP截取utf-8字符串的相關方法總結,希望對大家有所幫助。

責任編輯:曹凱 來源: 百度博客
相關推薦

2009-12-01 09:52:40

PHP過濾字符串

2009-11-26 16:26:32

PHP字符串mbstr

2009-11-23 15:10:28

PHP獲取當前url

2009-11-30 11:24:49

PHP將EXCEL導入

2010-03-11 09:56:57

Python字符串操作

2009-11-24 17:25:00

PHP二維數組排序

2009-11-30 18:26:06

PHP字符串替換

2016-12-13 10:13:18

PHPUTF-8實踐

2009-12-31 15:05:00

Silverlight

2009-12-31 14:12:40

Silverlight

2009-12-16 15:04:26

Ruby實現strea

2009-11-26 16:43:11

PHP截取中文字符串

2009-12-03 18:23:23

2009-12-01 13:41:49

靜態路由設置

2010-04-27 12:26:21

Unix字符串

2009-12-01 09:18:50

PHP分割字符串

2009-11-25 17:14:45

PHP安裝為Apach

2009-11-18 18:02:19

PHP字符串截取

2009-06-30 14:16:37

截取字符串

2010-07-21 14:33:01

刪除telnet
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产伦精品一区二区三区照片91 | 国产一区二区在线免费观看 | 都市激情亚洲 | 一区二区日本 | 夜久久| 9久9久| www国产精品 | 亚洲精品电影网在线观看 | 午夜寂寞影院列表 | 久久久国产一区二区三区四区小说 | 超碰最新在线 | 亚洲高清在线观看 | 91在线资源 | 亚洲精品在线免费 | 91视视频在线观看入口直接观看 | 一区二区高清 | 午夜视频网站 | 国精日本亚洲欧州国产中文久久 | 一区二区在线观看免费视频 | 久久99精品久久久久久琪琪 | 亚洲综合日韩精品欧美综合区 | 国产日产欧产精品精品推荐蛮挑 | 日韩一区中文字幕 | 精品视频 免费 | 黑人性hd | 欧美日韩亚洲二区 | 色爱区综合| 美女爽到呻吟久久久久 | 亚洲欧美少妇 | 精品自拍视频 | 91视频久久 | av大片| 久久精品毛片 | 国产1区2区在线观看 | 日韩一区二区三区av | 狠狠操av| 日本不卡在线观看 | 亚洲综合色网 | k8久久久一区二区三区 | 国内精品久久久久久久影视简单 | 亚洲精品中文字幕 |