首页 > CMS > PhpCMS > 正文

phpcms v9 修改系统函数str_cut()

2024-09-10 07:15:23
字体:
来源:转载
供稿:网友
  1. function str_cut($string$length$dot = ''
  2.  $strlen = strlen($string); 
  3.  if($strlen <= $lengthreturn $string
  4.  $string = str_replace(array('&nbsp;''&amp;''&quot;''&#039;''&ldquo;''&rdquo;''&mdash;''&lt;''&gt;''&middot;''&hellip;'), array(' ''&''"', "'", '', '', '', '<', '>', '·', '…'), $string); 
  5.  $strcut = ''
  6.  if(strtolower(CHARSET) == 'utf-8'
  7.  { 
  8.   $n = $tn = $noc = 0; 
  9.   while($n < $strlen
  10.   { 
  11.    $t = ord($string[$n]); 
  12.    if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) { 
  13.     $tn = 1; $n++; $noc++; 
  14.    } elseif(194 <= $t && $t <= 223) { 
  15.     $tn = 2; $n += 2; $noc += 2; 
  16.    } elseif(224 <= $t && $t < 239) { 
  17.     $tn = 3; $n += 3; $noc += 2; 
  18.    } elseif(240 <= $t && $t <= 247) { 
  19.     $tn = 4; $n += 4; $noc += 2; 
  20.    } elseif(248 <= $t && $t <= 251) { 
  21.     $tn = 5; $n += 5; $noc += 2; 
  22.    } elseif($t == 252 || $t == 253) { 
  23.     $tn = 6; $n += 6; $noc += 2; 
  24.    } else { 
  25.     $n++; 
  26.    } 
  27.    if($noc >= $lengthbreak
  28.   } 
  29.   if($noc > $length$n -= $tn
  30.   $strcut = substr($string, 0, $n); 
  31.  } 
  32.  else 
  33.  { 
  34.   $dotlen = strlen($dot); 
  35.   $maxi = $length - $dotlen - 1; 
  36.   for($i = 0; $i < $maxi$i++) 
  37.   { 
  38.    $strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i]; 
  39.   }  //Vevb.com 
  40.  } 
  41.  $strcut = str_replace(array('&''"', "'", '<', '>'), array('&amp;', '&quot;', '&#039;', '&lt;', '&gt;'), $strcut); 
  42.  return $strcut.$dot
  43. }

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表