成人免费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技術棧公眾號

主站蜘蛛池模板: 成人久久 | 日韩欧美网 | 黄色亚洲 | 午夜影院在线观看 | 天天看天天干 | 欧美在线视频二区 | 成人av网站在线观看 | 日本一区二区三区在线观看 | 五月婷婷婷 | 国产二区在线播放 | 7777精品伊人久久精品影视 | 精品日韩在线 | 久久久久久免费免费 | 日批免费观看 | 精品视频一区二区三区在线观看 | 2018中文字幕第一页 | 亚洲综合资源 | 日日噜| 一区二区三区免费在线观看 | 在线观看中文字幕 | 在线观看国产精品视频 | 成年人国产在线观看 | 国产一区久久久 | 美国av毛片 | 国产一区二区三区在线免费观看 | 国产女人第一次做爰毛片 | av在线成人 | 日韩一区二区三区av | 国产成人99久久亚洲综合精品 | 日本不卡一区二区三区在线观看 | 国产精品一二区 | 欧美中文字幕一区二区三区 | 一个色在线| 国产a区 | 在线成人免费av | 日本一区二区三区视频在线 | 在线一区| 91人人看| 国产伦精品一区二区三区视频金莲 | 视频精品一区二区三区 | 麻豆亚洲 |