这是因为汉字全角半角的问题,给你个函数:
function ChgTitle($title,$length){
if($length!=0){
if (strlen($title)>$length) {
$temp = 0;
for($i=0; $i<$length; $i++)
if (ord($title[$i]) > 128)
$temp++;
if ($temp%2 == 0)
$title = substr($title,0,$length)."...";
else
$title = substr($title,0,$length+1)."...";
}
return $title;
}else{return $title;}
}
function ChgTitle($title,$length){
if($length!=0){
if (strlen($title)>$length) {
$temp = 0;
for($i=0; $i<$length; $i++)
if (ord($title[$i]) > 128)
$temp++;
if ($temp%2 == 0)
$title = substr($title,0,$length)."...";
else
$title = substr($title,0,$length+1)."...";
}
return $title;
}else{return $title;}
}
substr( $str, 0, 20 ) . chr( 0 );
{
$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;
}
用法:$memo = showshort($field,$length);//$field 要截取的内容,$length截取的长度
http://cn.php.net/manual/zh/ref.mbstring.php