Home  >  Article  >  Backend Development  >  PHP character interception solves the Chinese interception problem without using the mb series

PHP character interception solves the Chinese interception problem without using the mb series

PHP中文网
PHP中文网Original
2016-07-21 15:44:001024browse

//Character interception to solve the Chinese interception problem

The code is as follows:

function Cut_string($string, $start ,$sublen, $extstring='...', $code = 'UTF-8') {//Cut_string开始 
if($code == 'UTF-8') 
{ 
$pa = "/[\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]/"; 
preg_match_all($pa, $string, $t_string); 
if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen)).$extstring; 
return join('', array_slice($t_string[0], $start, $sublen)); 
} 
else 
{ 
$start = $start*2; 
$sublen = $sublen*2; 
$strlen = strlen($string); 
$tmpstr = ''; 
for($i=0; $i<$strlen; $i++) 
{ 
if($i>=$start && $i<($start+$sublen)) 
{ 
if(ord(substr($string, $i, 1))>129) 
{ 
$tmpstr.= substr($string, $i, 2); 
} 
else 
{ 
$tmpstr.= substr($string, $i, 1); 
} 
} 
if(ord(substr($string, $i, 1))>129) $i++; 
} 
if(strlen($tmpstr)<$strlen ) $tmpstr.= $extstring; 
return $tmpstr; 
} 
} //Cut_string结束


http://www.bkjia.com/ PHPjc/320665.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/320665.htmlTechArticle Copy the code The code is as follows: function Cut_string($string, $start,$sublen, $extstring='...', $ code = 'UTF-8') {//Cut_string starts if($code == 'UTF-8') { $pa = "/[x01-x7f]|[xc2-xd...


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