function mystr($string,$start,$length)
{
$str="";
$len=$start+$length;
for ($i=$start;$i<$len;$i++)
{
if(ord(substr($string,$i,1))>0xa0)
{
$str .= substr($string, $i, 2);
$i++;
}
else
{
$str.=substr($string, $i, 1);
}
} return $str;
}
{
$str="";
$len=$start+$length;
for ($i=$start;$i<$len;$i++)
{
if(ord(substr($string,$i,1))>0xa0)
{
$str .= substr($string, $i, 2);
$i++;
}
else
{
$str.=substr($string, $i, 1);
}
} return $str;
}
{
if($sublen>=strlen($string))
{
return $string;
}
$s="";
for($i=0;$i<$sublen;$i++)
{
if(ord($string{$i})>127)
{
$s.=$string{$i}.$string{++$i};
continue;
}else{
$s.=$string{$i};
continue;
}
}
return $s."..";
}
{
echo header("Location:au_login.php");
exit;
}
$auid=$_SESSION['authorid'];
2、使用我的高效中文字串截取函数
3、不计效率时可使用楼上的基于字节判断的函数
4、只为列表时的截断,可以substr($text,0,$len).chr(0)."..."
function h_substr($str,$len)
{ if(func_num_args() <= 1) return $str;
elseif(func_num_args() == 2)
{ preg_match_all("/[\x80-\xff]?./",$str,$ar);
return join("",array_slice($ar[0],0,($len-1)))."…";
}
elseif(func_num_args() >= 3)
{ $start= func_get_arg(1);
$len = func_get_arg(2);
preg_match_all("/[\x80-\xff]?./",$str,$ar);
return join("",array_slice($ar[0],$start,($len-1)))."…";
}
}