<div class="codetitle"><a style="CURSOR: pointer" data="19062" class="copybut" id="copybut19062" onclick="doCopy('code19062')"> 代码如下:<div class="codebody" id="code19062"> define(CHARSET,'UTF-8'); // 系统默认编码 /* 根据中文裁减字符串 @param $string - 字符串 @param $length - 长度 @param $doc - 缩略后缀 @return 返回带省略号被裁减好的字符串 */ 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,array( '&',$strcut ); $pos = strrpos( $strcut,chr( 1 ) ); if ( $pos !== false ) { $strcut = substr( $strcut,$pos ); } return $strcut . $dot; }
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|