日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
PHP截取utf-8字符串的具體方法介紹

我們對(duì)PHP語(yǔ)言都已經(jīng)不再陌生,它是一個(gè)很常用的語(yǔ)言。今天我們將向大家介紹的是有關(guān)PHP截取utf-8字符串的相關(guān)方法。為了支持多語(yǔ)言,數(shù)據(jù)庫(kù)里的字符串可能保存為UTF-8編碼,在網(wǎng)站開(kāi)發(fā)中可能需要用php截取字符串的一部分。為了避免出現(xiàn)亂碼現(xiàn)象,編寫(xiě)如下的UTF-8字符串截取函數(shù)。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名申請(qǐng)、網(wǎng)頁(yè)空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、太湖網(wǎng)站維護(hù)、網(wǎng)站推廣。

#t#關(guān)于utf-8的原理請(qǐng)看 UTF-8 FAQ

UTF-8編碼的字符可能由1~3個(gè)字節(jié)組成, 具體數(shù)目可以由第一個(gè)字節(jié)判斷出來(lái)。(理論上可能更長(zhǎng),但這里假設(shè)不超過(guò)3個(gè)字節(jié))
第一個(gè)字節(jié)大于224的,它與它之后的2個(gè)字節(jié)一起組成一個(gè)UTF-8字符
第一個(gè)字節(jié)大于192小于224的,它與它之后的1個(gè)字節(jié)組成一個(gè)UTF-8字符
否則第一個(gè)字節(jié)本身就是一個(gè)英文字符(包括數(shù)字和一小部分標(biāo)點(diǎn)符號(hào))。

以前為某網(wǎng)站設(shè)計(jì)的代碼(也是現(xiàn)在用在首頁(yè)的長(zhǎng)度截取的函數(shù))

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

 
 
 
  1. < ?php // Cut_Str;  
  2. //$sourcestr 是要處理的字符串  
  3. //$cutlength 為截取的長(zhǎng)度(即字?jǐn)?shù))  
  4. function cut_str($sourcestr,$cutlength)  
  5. {  
  6. $returnstr=”;  
  7. $i=0;  
  8. $n=0;  
  9. $str_length=strlen($sourcestr);//字符串的字節(jié)數(shù)  
  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); 
    //根據(jù)UTF-8編碼規(guī)范,將3個(gè)連續(xù)的字符計(jì)為單個(gè)字符  
  17. $i=$i+3; //實(shí)際Byte計(jì)為3  
  18. $n++; //字串長(zhǎng)度計(jì)1  
  19. }  
  20. elseif ($ascnum>=192) //如果ASCII位高與192,  
  21. {  
  22. $returnstr=$returnstr.substr($sourcestr,$i,2);
     //根據(jù)UTF-8編碼規(guī)范,將2個(gè)連續(xù)的字符計(jì)為單個(gè)字符  
  23. $i=$i+2; //實(shí)際Byte計(jì)為2  
  24. $n++; //字串長(zhǎng)度計(jì)1  
  25. }  
  26. elseif ($ascnum>=65 && $ascnum<=90) 
    //如果是大寫(xiě)字母,  
  27. {  
  28. $returnstr=$returnstr.substr($sourcestr,$i,1);  
  29. $i=$i+1; //實(shí)際的Byte數(shù)仍計(jì)1個(gè)  
  30. $n++; //但考慮整體美觀,大寫(xiě)字母計(jì)成一個(gè)高位字符  
  31. }  
  32. else //其他情況下,包括小寫(xiě)字母和半角標(biāo)點(diǎn)符號(hào),  
  33. {  
  34. $returnstr=$returnstr.substr($sourcestr,$i,1);  
  35. $i=$i+1; //實(shí)際的Byte數(shù)計(jì)1個(gè)  
  36. $n=$n+0.5; //小寫(xiě)字母和半角標(biāo)點(diǎn)等與半個(gè)高位字符寬…  
  37. }  
  38. }  
  39. if ($str_length>$cutlength){  
  40. $returnstr = $returnstr . “…”;
    //超過(guò)長(zhǎng)度時(shí)在尾處加上省略號(hào)  
  41. }  
  42. return $returnstr;  

以上就是PHP截取utf-8字符串的相關(guān)方法總結(jié),希望對(duì)大家有所幫助。


新聞名稱:PHP截取utf-8字符串的具體方法介紹
網(wǎng)頁(yè)URL:http://www.5511xx.com/article/dhsgdsj.html