两款php 截取字符串函数

提供两款php 截取字符串函数,他们能自动识别中文哦,如果你是截取文章这个很不错啊,喜欢就进来看看吧。

第一款:

  1. <?php
  2. header ( "content-type:text/html; charset=utf-8" );
  3. function strcut($string, $length, $dot = '...',$charset='utf-8')
  4. {
  5. $strlen = strlen($string);
  6. if($strlen <= $length) return $string;
  7. $strcut = '';
  8. if(strtolower($charset) == 'utf-8')
  9. {
  10. $n = $tn = $noc = 0;
  11. while($n < $strlen)
  12. {
  13. $t = ord($string[$n]);
  14. if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {
  15. $tn = 1; $n++; $noc++;
  16. } elseif(194 <= $t && $t <= 223) {
  17. $tn = 2; $n += 2; $noc += 2;
  18. } elseif(224 <= $t && $t <= 239) {
  19. $tn = 3; $n += 3; $noc += 3;
  20. } elseif(240 <= $t && $t <= 247) {
  21. $tn = 4; $n += 4; $noc += 4;
  22. } elseif(248 <= $t && $t <= 251) {
  23. $tn = 5; $n += 5; $noc += 5;
  24. } elseif($t == 252 || $t == 253)
  25. {
  26. $tn = 6; $n += 6; $noc += 6;
  27. }
  28. else
  29. {
  30. $n++;
  31. }
  32. if($noc >= $length) break;
  33. }
  34. if($noc > $length) $n -= $tn;
  35. $strcut = substr($string, 0, $n);
  36. }
  37. else
  38. {
  39. $dotlen = strlen($dot);
  40. $maxi = $length - $dotlen - 1;
  41. for($i = 0; $i < $maxi; $i++)
  42. {
  43. $strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];
  44. }
  45. }
  46. var_dump($strcut);
  47. return $strcut;
  48. }
  49. echo "jjjkkklll";
  50. echo strcut("向kk向向向kk向向向kk向向kkklllllllllllmmmmmmmmmmmmmmm向东阳",12)

第二款:

  1. function splitstr($str,$len){
  2. if($len<=0){
  3. return false;
  4. }
  5. else{
  6. $slen=strlen($str);
  7. if($len>=$slen)
  8. return $str;
  9. else{
  10. for($i=0;$i<($len-1);$i++){
  11. if(ord(substr($str,$i,1))>0xa0)
  12. $i++;
  13. }
  14. if($i>=$len)
  15. return substr($str,0,$len);
  16. elseif(ord(substr($str,$i,1))>0xa0)
  17. return substr($str,0,$len-1);
  18. else
  19. return substr($str,0,$len);
  20. }
  21. }
  22. }