在ASCII中,0xa0表示汉字的开始 其中php中的一个函数ord()函数 此函数功能返回一个字符的askii码值; 如ord('A')=65;
<?php
function GBsubstr($string, $start, $length) {
if(strlen($string)>$length){
$str=null;
$len=$start+$length;
for($i=$start;$i<$len;$i++){
if(ord(substr($string,$i,1))>0xa0){
//ord()函数返回字符的 ASCII (美国国家标准交换码) 序数值。本函数和 chr() 函数相反。
$str.=substr($string,$i,2);
$i++;
}else{
$str.=substr($string,$i,1);
}
}
return $str.'...';
}else{
return $string;
}
}
echo GBsubstr("我1234的名字是肖岩",0,8);
?>