有的时候,在截取文章的时候,我们希望保语义的完整。也就是说,不能截取半句话。 jiuhecai在临汾9月阴天里,写下了这个智能截取函数: function AI_mb_substr($str,$length,$encode='utf8',$flags='. ! ? 。 ! ?'){
mb_internal_encoding($encode);
$mylen=mb_strlen($str);
if($mylen<=$length)return $str;
$flagsr=explode(' ',$flags);
for($i=$length;$i<$mylen;$i++){
if(in_array(mb_substr($str,$i,1),$flagsr))break;
}
for($j=$length-1;$j>-1;$j--){
if(in_array(mb_substr($str,$j,1),$flagsr))break;
}
if($j==-1 && $i==$mylen){
}elseif($j==-1){
$length=$i+1;
}elseif($i==$mylen){
$length=$j+1;
}else{
if($i+$j>2*$length){
$length=$j+1;
}else{
$length=$i+1;
}
}
return mb_substr($str,0,$length);
}
echo AI_mb_substr("ni好!我也很好.我们都很好!中药方大全网站是个好网站呢?",15);
?>
|