专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »PHP教程 » php截取汉字:PHP汉字的截取解决思路方法 »正文

php截取汉字:PHP汉字的截取解决思路方法

来源: 发布时间:星期一, 2009年1月12日 浏览:28次 评论:0
   在每种语言中都会遇到汉字截取原因英文字母占个字节汉字占2个字节中都是对单个字节就是说按照英文截取当遇到汉字时可能截取就会出现乱码下面是php解决方案其他语言类似

  Java代码

function msubstr($str, $start, $len){
$tmpstr = "";
$strlen = $start + $len;
for($i = 0; $i < $strlen; $i){
(ord(substr($str, $i, 1)) > 0xa0){
$tmpstr .= substr($str, $i, 2);
$i;
}
$tmpstr .= substr($str, $i, 1);
}
$tmpstr;
}
function msubstr($str, $start, $len){
$tmpstr = "";
$strlen = $start + $len;
for($i = 0; $i < $strlen; $i){
(ord(substr($str, $i, 1)) > 0xa0){
$tmpstr .= substr($str, $i, 2);
$i;
}
$tmpstr .= substr($str, $i, 1);
}
$tmpstr;
}


  在smarty模板中经常用到汉字截取需要修改truncate或是自己增加下面代码是增加:

  Java代码

function smarty_modier_cntruncate($, $strlen = 20, $etc = '...', $keep_first_style = false)
$strlen = $strlen*2;
$ = trim($);
( strlen($) <= $strlen ) {
$;
}
$str = strip_tags($);
$j = 0;
for($i=0;$i<$strlen;$i) {
(ord(substr($str,$i,1))>0xa0) $j;
}
($j%2!=0) $strlen;
$rstr=substr($str,0,$strlen);
(strlen($str)>$strlen) {$rstr .= $etc;}
( $keep_first_style true && ereg('^<(.*)>$',$) ) {
( strlen($str) <= $strlen ) {
$;
}
$start_pos = strpos($,substr($str,0,4));
$end_pos = strpos($,substr($str,-4));
$end_pos = $end_pos+4;
$rstr = substr($,0,$start_pos) . $rstr . substr($,$end_pos,strlen($));
}
$rstr;
function smarty_modier_cntruncate($, $strlen = 20, $etc = '...', $keep_first_style = false)
{
$strlen = $strlen*2;
$ = trim($);
( strlen($) <= $strlen ) {
$;
}
$str = strip_tags($);
$j = 0;
for($i=0;$i<$strlen;$i) {
(ord(substr($str,$i,1))>0xa0) $j;
}
($j%2!=0) $strlen;
$rstr=substr($str,0,$strlen);
(strlen($str)>$strlen) {$rstr .= $etc;}
( $keep_first_style true && ereg('^<(.*)>$',$) ) {
( strlen($str) <= $strlen ) {
$;
}
$start_pos = strpos($,substr($str,0,4));
$end_pos = strpos($,substr($str,-4));
$end_pos = $end_pos+4;
$rstr = substr($,0,$start_pos) . $rstr . substr($,$end_pos,strlen($));
}
$rstr;
}


  使用方法介绍说明:<{$kjswsList[kjswsCount].topic|cntruncate:18:"...":true}>

  18为汉字个数不是字节数

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: