当前位置:首页> PHP教程> php基础
关键字
文章内容
字符截取函数(支持中文截取)
 
 
修改时间:[2009/07/16 22:17]    阅读次数:[819]    发表者:[起缘]
 
在用substr()函数截取时,英文会出现任何问题,但对于中文字符串可能会出现中文显示不正确,如后面会带个“?”字符。这是因为中文是双字节。而substr刚好截取了一个中文字符的一个字节。而引起的。(包括本站Smarty的truncate引起的字符截取)为避免这种情况,以下对substr()进行改进。代码如下:
function Timsubstr($string,$start,$length) {
$str="";
$str_len=$start+$length;
for($i=$start;$i<$str_len;$i++)
{
if(ord(substr($string,$i,1))>0xa0)
{
$str.=substr($string,$i,2);
$i++;
}
else
$str.=substr($string,$i,1);
}
if(strlen($string)>$length)
return $str."...";
else
return $str;}
以上的Timsubstr()可顺利解决以上问题。