php 中英文混合字符串的截取函数

WBOY
Freigeben: 2016-07-25 08:55:04
Original
1173 Leute haben es durchsucht
  1. /**

  2. * 截取中英文混合的字符串
  3. * by bbs.it-home.org
  4. */
  5. function mb_str_split($string){
  6. # Split at all position not after the start: ^
  7. # and not before the end: $
  8. //$string = iconv('gb2312', 'utf-8//ignore', $string);
  9. return preg_split('/(?}
  10. $string = 'q345e q345d q345c,q345d圆钢,q345e圆钢nm360a耐磨板,欧标s355低合金板 bs700mc汽车板,汽车qste460tm结构钢,船板ah36/eh36/dh36,美标容器板 耐候钢 弹簧钢';

  11. //$charlist = mb_str_split($string);
  12. echo mb_chunk_split($string, 30, '..', true);
  13. echo '
    ';
  14. echo mb_chunk_split($string, 10, '
    ');
  15. function mb_chunk_split($string, $length, $end = '..', $once = false){
  16. //$string = iconv('gb2312', 'utf-8//ignore', $string);
  17. $charlist = mb_str_split($string);
  18. $i = 0;
  19. $j = 0;
  20. $once_array = array();
  21. foreach($charlist as $value){
  22. /* if($once){
  23. if(($i + $j) > $length){
  24. $i--; //尽可能少的
  25. break;
  26. }
  27. }else{
  28. if(($i + $j) >= $length){
  29. $once_array[] = implode('', array_slice($charlist, $once_leng, $i));
  30. $once_leng += $i;
  31. $i = $j = 0;
  32. }
  33. } */
  34. if(($i + $j) >= $length){
  35. if($once)
  36. return implode('', array_slice($charlist, 0, $i-1)) . (count($charlist) $once_array[] = $i;
  37. $i = $j = 0;
  38. }
  39. if(ord($value) > 127)
  40. $j++; //中文算2个宽度
  41. /*if($value == ',')
  42. $j--;*/
  43. $i++;
  44. }
  45. //末尾补齐
  46. if(array_sum($once_array) $once_array[] = $i;
  47. $str_arr = array();
  48. $once_leng = 0;
  49. foreach($once_array as $value){
  50. $str_arr[] = implode('', array_slice($charlist, $once_leng, $value));
  51. $once_leng += $value;
  52. }
  53. return implode($end, $str_arr);
  54. //return implode('', array_slice($charlist, 0, $i)) . (count($charlist) }
  55. ?>
复制代码


Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!