天天看點

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