smart下截取汉字

utf-8编码,一个汉字占三个字节: function smarty_modifier_cntruncate($string, $strlen = 20, $etc = '...', $keep_first_style = false) { $strlen = $strlen*3; $string = trim($string); if ( strlen($string) <= $strlen ) { return $string; } $str = strip_tags($string); $j = 0; www.444p.com for($i=0;$i<$strlen;$i++) { if(ord(substr($str,$i,1))>0xa0){ $i+=2; $j+=3;} else {$j++;} } $rstr=substr($str,0,$j); if (strlen($str)>$strlen ) {$rstr .= $etc;} www.444p.com php学习之家 if ( $keep_first_style == true && ereg('^<(.*)></p>,$string) ) { if ( strlen($str) <= $strlen ) { return $string; } $start_pos = strpos($string,substr($str,0,4)); $end_pos = strpos($string,substr($str,-4)); $end_pos = $end_pos+4; $rstr = substr($string,0,$start_pos) . $rstr . substr($string,$end_pos,strlen($string)); } return $rstr; } gb2312编码,一个汉字占两字节: function smarty_modifier_cntruncate($string, $strlen = 20, $etc = '...', $keep_first_style = false) { $strlen = $strlen*2; $string = trim($string); if ( strlen($string) <= $strlen ) { return $string; } $str = strip_tags($string); $j = 0; for($i=0;$i<$strlen;$i++) { if(ord(substr($str,$i,1))>0xa0) $j++; } if($j%2!=0) $strlen++; $rstr=substr($str,0,$strlen); if (strlen($str)>$strlen) {$rstr .= $etc;} if ( $keep_first_style == true && ereg('^<(.*)></p>,$string) ) { if ( strlen($str) <= $strlen ) { return $string; } $start_pos = strpos($string,substr($str,0,4)); $end_pos = strpos($string,substr($str,-4)); $end_pos = $end_pos+4; $rstr = substr($string,0,$start_pos) . $rstr . substr($string,$end_pos,strlen($string)); } return $rstr; }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值