ホームページ  >  記事  >  バックエンド開発  >  PHP 文字インターセプトは、mb シリーズを使用せずに中国語インターセプト問題を解決します

PHP 文字インターセプトは、mb シリーズを使用せずに中国語インターセプト問題を解決します

PHP中文网
PHP中文网オリジナル
2016-07-21 15:44:001028ブラウズ

//文字傍受、中国語傍受問題を解決します

コードは次のとおりです:

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 コードをコピーします。 コードは次のとおりです。 function Cut_string($string, $start ,$sublen, $extstring='...', $code = 'UTF-8') {//Cut_string start if($code = = 'UTF-8') { $pa = "/[x01-x7f]|[xc2-xd...


]
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。