utf8中文字串截取
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
//utf8中文字串截取 function csubstr($str,$start,$len){ preg_match_all("/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/", $str, $ar); $x=1; for($i=0;$i<sizeof($ar[0]);$i++){ if($i>$len){ break; } if(ord($ar[0][$i])<128){ if($x==2){ $len=$len+1; $x=0; } $x++; } } return join("",array_slice($ar[0],$start,$len)); } |