php utf-8形式の文字列インスタンスコードを切り取る
1335 ワード
php utf-8形式の文字列を切り取る
phpでは、文字列を切り取る必要があります.英語文字は1バイト、中国語文字は2バイトを占有するが、中国語文字は2バイトを占有するのはGBK符号化に比べて国際的に流行しているUTF 8符号化では、1つの中国語文字は3バイトを占有する.この記事では、utf-8形式の文字列をphpで切り取る関数について説明します.
例:
utf-8形式の文字列を切り取る必要がある場合は、この関数を直接呼び出すとよい.
読書に感謝して、みんなを助けることができることを望んで、みんなの当駅に対する支持に感謝します!
phpでは、文字列を切り取る必要があります.英語文字は1バイト、中国語文字は2バイトを占有するが、中国語文字は2バイトを占有するのはGBK符号化に比べて国際的に流行しているUTF 8符号化では、1つの中国語文字は3バイトを占有する.この記事では、utf-8形式の文字列をphpで切り取る関数について説明します.
例:
function truncate_utf8_string($string, $length, $etc = '...') {
$result = '';
$string = html_entity_decode ( trim ( strip_tags ( $string ) ), ENT_QUOTES, 'UTF-8' );
$strlen = strlen ( $string );
for($i = 0; (($i < $strlen) && ($length > 0)); $i ++) {
if ($number = strpos ( str_pad ( decbin ( ord ( substr ( $string, $i, 1 ) ) ), 8, '0', STR_PAD_LEFT ), '0' )) {
if ($length < 1.0) {
break;
}
$result .= substr ( $string, $i, $number );
$length -= 1.0;
$i += $number - 1;
} else {
$result .= substr ( $string, $i, 1 );
$length -= 0.5;
}
}
$result = htmlspecialchars ( $result, ENT_QUOTES, 'UTF-8' );
if ($i < $strlen) {
$result .= $etc;
}
return $result;
}
utf-8形式の文字列を切り取る必要がある場合は、この関数を直接呼び出すとよい.
読書に感謝して、みんなを助けることができることを望んで、みんなの当駅に対する支持に感謝します!