PHP_PHP チュートリアルでの高性能中国語文字列インターセプト関数の共有

WBOY
リリース: 2016-07-20 11:10:27
オリジナル
757 人が閲覧しました

これは、phpwind の文字列インターセプト関数を使用します。gbk、gbk2312、utf-8 などの複数のエンコーディングでの文字インターセプトをサポートします。また、中国語文字列の処理も非常に効率的にサポートします。

技術記事
コードは次のとおりです コードをコピーします


function substrs($content,$length,$add='Y'){
if (strlen($content)>$length) {
if ($ GLOBALS['db_charset']!='utf-8') {
$retstr = '';
for ($i=0;$i$retstr .= ord($content[$i]) > $content[$i].$content[++$i] : $content[$i]
return $retstr.($add=='Y) ' ? ' ..' : '');
} utf8_trim(substr($content,0,$length)).($add=='Y' ? ' ..' : ''); $content を返す ;
関数 utf8_trim($str) {
$hex = '';
$len = strlen($str)-1;
for ($i=$len;$i>=0;$i -=1 ) {
$ch = ord($str[$i]);
$hex .= " $ch";
if (($ch & 128)==0 || ($ch & 192)= =192) {
return substr($str,0,$i);
}
}
return $str.$hex;
}

function Cutstr($string, $length, $dot = ' ...' ) {
グローバル $charset;
if(strlen($string) <= $length) {
return $string;

}

$string = str_replace(array('&', '"', '<', '> ')、array('&', '"', '<', '>'), $string);
$strcut = '';
if(strto lower($charset) == 'utf -8' ) {
$n = $tn = $noc = 0;
while($n < strlen($string)) {
$t = ord($string[$n]); == 9 || $t == 10 || (32 <= $t && $t <= 126)) { $n++ = 1; t && $ t <= 223) {
$tn = 2; $n += 2; $noc += 2;
} elseif(224 <= $t && $t <= 239) { = 3; $n += 2;
} elseif(240 <= $t && $t <= 247) { $n += 4; 2;
} elseif(248 <= $t && $t <= 251) {
$tn = 5; $noc += 2; $t = = 253) {
$tn = 6; $noc += 2;
} if($noc >= $length) {
break;
}
}
if($noc > $length) {
$n -= $tn;
}
$strcut = substr($string, 0, $n)
} else {
for($i = 0; $i $strcut .= ord($string[$i]) > 127 ? $string[$i] $i] ;
}
}
$strcut = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '> '), $strcut);
$strcut.$dot









http://www.bkjia.com/PHPjc/444721.html

www.bkjia.com

本当

http://www.bkjia.com/PHPjc/444721.html
これは、phpwind の文字列インターセプト関数を使用します。gbk、gbk2312、utf-8 などの複数のエンコーディングでの文字インターセプトをサポートします。また、中国語文字列の処理も非常に効率的にサポートします。 コードは次のとおりです...

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート