ホームページ  >  記事  >  バックエンド開発  >  中国語の文字列 PHP コードをインターセプトする

中国語の文字列 PHP コードをインターセプトする

WBOY
WBOYオリジナル
2016-07-25 08:46:07948ブラウズ
  1. /**
  2. *
  3. * 中国語文字列インターセプト
  4. * @param string $string
  5. * @param int $sublen
  6. * @param int $start
  7. * @param string $code
  8. */
  9. function substr_zh ( $string, $sublen, $start = 0, $code = 'UTF-8' )
  10. {
  11. if ( $code == 'UTF-8' )
  12. {
  13. $pa = "/[x01-x7f]|[xc2-xdf][x80-xbf]|xe0[xa0-xbf][x80-xbf]|[xe1-xef][x80-xbf][x80 -xbf]|xf0[x90-xbf][x80-xbf][x80-xbf]|[xf1-xf7][x80-xbf][x80-xbf][x80-xbf]/";
  14. preg_match_all ( $pa, $string, $t_string );
  15. if ( count ( $t_string[0] ) - $start > $sublen ) return join ( '', array_slice ( $t_string[0], $start, $sublen ) ) 。 "...";
  16. return join ( '', array_slice ( $t_string[0], $start, $sublen ) );
  17. }
  18. else
  19. {
  20. $start = $start * 2;
  21. $sublen = $sublen * 2;
  22. $strlen = strlen ( $string );
  23. $tmpstr = '';
  24. for ( $i = 0; $i {
  25. if ( $i > = $start && $i {
  26. if ( ord ( substr ( $string, $i, 1 ) ) > 129 )
  27. {
  28. $tmpstr .= substr ( $string, $i, 2 );
  29. }
  30. else
  31. {
  32. $tmpstr .= substr ( $string, $i, 1 );
  33. }
  34. }
  35. if ( ord ( substr ( $string, $i, 1 ) ) > 129 ) $i ++;
  36. }
  37. if ( strlen ( $tmpstr ) < $strlen ) $tmpstr .= "...";
  38. return $tmpstr;
  39. }
  40. }
复制代

PHP


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。