天天看点

PHP截取utf字符

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);