截取指定长度的文字(包含对汉字的处理)
网络整理 - 07-27
一般来说,要截取的变量来自Mysql,首先要保证那个字段长度要足够长,一般为char(200),可以保持100个汉字,包括标点. 本程序实现的功能:截取指定长度汉字而不会出现以"?>"结尾,超出部分以"..."代替
<?PHP$str="这个字符比较长SO LONG";$Short_Str=showShort($str,4);//截取前面4个汉字,结果为:这个字符...Echo "$Short_Str";Function csubstr($str,$start,$len) { $strlen=strlen($str); $clen=0; for($i=0;$i<$strlen;$i++,$clen++) { if ($clen>=$start+$len) break; if(ord(substr($str,$i,1))>0xa0) { if ($clen>=$start) $tmpstr.=substr($str,$i,2); $i++; } else { if ($clen>=$start) $tmpstr.=substr($str,$i,1); } } return $tmpstr; } Function showShort($str,$len) { $tempstr = csubstr($str,0,$len); if ($str<>$tempstr) $tempstr .= "..."; //要以什么结尾,修改这里就可以.return $tempstr; }?>
使用方法:
1.将以上代码另存为dovia.php
2.页面引入:<?php include("dovia.php"); ?>
2.套用函数输出目标:<?php $str=$row_rs['N_Title'];$Short_Str=showShort($str,12);echo "$Short_Str";?>