以前写的一个PHP在UTF-8编码下等宽截取所有文字的函数,今天贴出来,分享一下 <?php /*------------------------------------------------ * UTF-8中文截取函数 *------------------------------------------------*/ //$str 被截取的字符串 //$len 要截取的长度 //$start 起始位置 function cn_substr($str,$len,$start=0){ $resultstr=''; $i=0; if(strlen($str) < $len){ return ''; } for($j=0;$j<$len;$j++){ if(ord(substr($str,$i,1)) > 224){ if($j < $start){ $i=$i+3; } else{ $resultstr .= substr($str,$i,3); $i = $i+3; } } else if(ord(substr($str,$i,1)) > 192 && ord(substr($str,$i,1)) < 224){ if($j < $start){ $i=$i+2; } else { $resultstr .= substr($str,$i,2); $i = $i+2; } } else{ if($j < $start){ $i=$i++; } else { $resultstr .= substr($str,$i,1); $i++; } } } return $resultstr; } print(cn_substr('中华人民共和国',8,2)); ?>