php的 substr 来截取中文,会导致乱码,是因为编码问题,中文每个字会占用三个字符,所以进行截取的同时,需要判断再进行截取,避免乱码问题。
//UTF截取中文
function utf_substr($str,$len){
for($i=0;$i<$len;$i++){
$temp_str=substr($str,0,1);
if(ord($temp_str) > 127){
$i++;
if($i<$len){
$new_str[]=substr($str,0,3);
$str=substr($str,3);
}
}
else{
$new_str[]=substr($str,0,1);
$str=substr($str,1);
}
}
return join($new_str);
}