字符截取函数(支持中文截取)
时间:2007-02-17 来源:PHP爱好者
在用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()可顺利解决以上问题。
php爱好者站 http://www.phpfans.net php动态|php基础|php进阶|php模板.
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()可顺利解决以上问题。
php爱好者站 http://www.phpfans.net php动态|php基础|php进阶|php模板.
相关阅读 更多 +