-
- function msubstr($str,$start,$len) {
- $strlen=$start $len;
- for($i=0;$i<$strlen;$i ) {
- if(ord(substr($str,$i,1))>0xa0) {
- $tmpstr.=substr($str,$i,2);
- $i ;
- } else
- $tmpstr.=substr($str,$i,1);
- }
- return $tmpstr;
- }
复制代码
调用:
-
-
$str="这个字符好长呀,^_^"; - $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 ;
- } bbs.it-home.org
- 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;
- }
-
复制代码
这里再分享一个更简洁的截取汉字长度的方法:
-
-
- $len = 19;
- $text = "怎么将新闻的很长的标题只显示前面一些字,后面用.....来代替?";
- echo strlen($text)<=$len ? $text : (substr($text,0,$len).chr(0)."....");
复制代码
|