Home  >  Article  >  Backend Development  >  PHP utf-8 Chinese interception without garbled characters (string judgment version)

PHP utf-8 Chinese interception without garbled characters (string judgment version)

WBOY
WBOYOriginal
2016-08-08 09:30:331053browse
/*E4 B8 AD E5 9B BD   中国
1110 0100    10111000   10101101
1110 0101    1001101110111101

61  a
0011 1101


0xxx xxxx ,1个字节
110xx xxxx , 2个字节
1110 xxxx, 3
1111 0xxxx 4...
*/<pre name="code" class="php">$str = '中华人aaa民共b和国,c万岁';

function utf8sub($str,$len){
	if($len <=0) return &#39;&#39;;
	$length = strlen($str);
	$offset=0;
	$chars=0;
	$res=&#39;&#39;;
	while($chars<$len && $offset<$length){
		$heigh = decbin(ord(substr($str, $offset,1)));
		echo $heigh ,&#39;</br>';
		if(strlen($heigh)<8){
			$count=1;
		}else if(substr($heigh,0,3) == '110'){
			$count=2;
		}else if(substr($heigh,0,4) == '1110'){
			$count=3;
		}else if(substr($heigh,0,5) == '11110'){
			$count=4;
		}else if(substr($heigh,0,6) == '111110'){
			$count=5;
		}else if(substr($heigh,0,7) == '1111110'){
			$count=6;
		}
		$res .= substr($str, $offset,$count);
		$chars += 1;
		$offset += $count;
	}
	return $res;
}

echo utf8sub($str,10);




The above introduces PHP utf-8 Chinese interception without garbled characters (string judgment version), including aspects of the content. I hope it will be helpful to friends who are interested in PHP tutorials.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn