有的时候,在截取文章的时候,我们希望保语义的完整。也就是说,不能截取半句话。
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); ?>