ホームページ >バックエンド開発 >PHPチュートリアル >php: Chinese_PHP チュートリアルによる文字列切り取り関数メソッド

php: Chinese_PHP チュートリアルによる文字列切り取り関数メソッド

WBOY
WBOYオリジナル
2016-07-13 17:19:16890ブラウズ

定義(CHARSET, 'UTF-8'); // システム默认编码  

/**
*中国語に合わせて紐をカットしてください
* @param $string - 文字列
* @param $length - 長さ
* @param $doc - 省略されたサフィックス
* @return は省略記号付きの切り詰められた文字列を返します
*/
function Cutstr( $string, $length, $dot = '...' ) {
if ( strlen( $string )
$string を返します。  
}
$pre = chr( 1 );  
$end = chr( 1 );  
$string = str_replace( array( '&', '"', '<', '>' ), array( $pre . '&' . $end, $pre . '"' . $end, $ '<' .$end )、$string );  
$strcut = '';  
if ( strto lower( CHARSET ) == 'utf-8' ) {
$n = $tn = $noc = 0;  
while ( $n < strlen( $string ) ) {
$t = ord( $string[$n] );  
if ( $t == 9 || $t == 10 || (32 <= $t && $t <= 126) ) {
$tn = 1;  
$n++;  
$noc++;  
} elseif ( 194 <= $t && $t <= 223 ) {
$tn = 2;  
$n += 2;  
$noc += 2;  
} elseif ( 224 <= $t && $t <= 239 ) {
$tn = 3;  
$n += 3;  
$noc += 2;  
} elseif ( 240 <= $t && $t <= 247 ) {
$tn = 4;  
$n += 4;  
$noc += 2;  
} elseif ( 248 <= $t && $t <= 251 ) {
$tn = 5;  
$n += 5;  
$noc += 2;  
} elseif ( $t == 252 || $t == 253 ) {
$tn = 6;  
$n += 6;  
$noc += 2;  
} else {
$n++;  
}
if ( $noc >= $length ) {
休憩。  
}
}
if ( $noc > $length ) {
$n -= $tn;  
}
$strcut = substr( $string, 0, $n );  
} else {
for ( $i = 0; $i < $length; $i++ ) {
$strcut .= ord( $string[$i] ) > 127 ? $string[$i] 。 $string[++$i] : $string[$i];  
}
}
$strcut = str_replace( array( $pre . '&' . $end, $pre . '"' . $end, $pre . '<' . $end, $pre . '>' . $end ) 、array( '&', '"', '<', '>' ), $strcut );
$pos = strrpos( $strcut, chr( 1 ) );
if ( $pos !== false ) {
$strcut = substr( $strcut, 0, $pos );
}
$strcut を返します
}

http://www.bkjia.com/PHPjc/532686.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/532686.html技術記事 define(CHARSET, UTF-8); // システムのデフォルトのエンコーディング/** * 中国語に従って文字列を切り取ります* @param $string - 文字列* @param $length - 長さ* @param $doc - 略語の接尾辞* @return Back一緒に…
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。