PHP语言: 根据中文裁减字符串 <div class="codetitle"><a style="CURSOR: pointer" data="66682" class="copybut" id="copybut66682" onclick="doCopy('code66682')"> 代码如下:<div class="codebody" id="code66682"> function cutstr($string,$length,$dot = ' ...') { if (strlen($string) <= $length) { return$string; } $pre = chr(1); $end = chr(1); $string = str_replace(array('&','"','<','>'),array($pre . '&'. $end,$pre . '"' . $end,$pre . '<' .$end,$pre . '>' . $end),$string); $strcut = ''; if (strtolower(CHARSET) == 'utf-8'){ $n = $tn =$noc = 0; while ($n< strlen($string)) { $t =ord($string[$n]); if ($t == 9 || $t == 10 || (32<= $t && $t <= 126)) { $tn = 1; $n++; $noc++; } elseif (194 <= $t&& $t <= 223) { $tn = 2; $n += 2; $noc += 2; } elseif (224 <= $t&& $t <= 239) { $tn = 3; $n += 3; $noc += 2; } elseif (240 <= $t&& $t <= 247) { $tn = 4; $n += 4; $noc += 2; } elseif (248 <= $t&& $t <= 251) { $tn = 5; $n += 5; $noc += 2; } elseif ($t == 252 || $t ==253) { $tn = 6; $n += 6; $noc += 2; } else { $n++; } if ($noc >= $length){ break; } } if ($noc> $length) { $n -= $tn; } $strcut =substr($string,$n); } else { for ($i =0; $i < $length; $i++) { $strcut .= ord($string[$i])> 127 ? $string[$i] . $string[++$i] : $string[$i]; } } $strcut = str_replace(array($pre . '&' .$end,$pre . '<' . $end,$pre . '>' .$end),array('&',$strcut); $pos = strrpos($strcut,chr(1)); if ($pos !== false) { $strcut =substr($strcut,$pos); } return $strcut . $dot; }
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|