Heim >Backend-Entwicklung >PHP-Tutorial >php截取中文字符(utf-8格式)的函数

php截取中文字符(utf-8格式)的函数

WBOY
WBOYOriginal
2016-07-25 09:04:17928Durchsuche
  1. /**

  2. @UTF-8中文字符截断程序
  3. @http://bbs.it-home.org
  4. */
  5. $str = "321这是测试字符串";
  6. $str1 = "()()";
  7. echo subUTF8str($str,0,3)."
    ";
  8. echo subUTF8str($str,0,4)."
    ";
  9. echo subUTF8str($str1,0,4)."
    ";
  10. echo subUTF8str($str1,0,10)."
    ";
  11. function subUTF8str($str,$start=0,$length=80){

  12. $cur_len = 0; //人理解的字符串长度
  13. $all_len = strlen($str); //机器理解字符串长度
  14. if($length > $all_len)
  15. {
  16. return $str;
  17. }
  18. for($i = 0;$i {
  19. if($cur_len == $start)
  20. {
  21. break;
  22. }
  23. if (ord($str[$i]) > 127)
  24. {
  25. $i += 3;
  26. }else{
  27. $i += 1;
  28. }
  29. $cur_len ++;
  30. }
  31. $start_pos = $i;
  32. $temp_pos = $cur_len;
  33. for(;$cur_len - $temp_pos {
  34. if($i >= $all_len)
  35. break;
  36. if (ord($str[$i]) > 127)
  37. {
  38. $i += 3;
  39. }else{
  40. $i += 1;
  41. }
  42. $cur_len ++;
  43. }
  44. $end_pos = $i;
  45. return substr($str,$start_pos,$end_pos);
  46. }
  47. ?>
复制代码

php自带的函数库中有很多处理字符串的函数,建议大家去深入研究下,多多实践。



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn