php utf-8形式の文字列インスタンスコードを切り取る

1335 ワード

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形式の文字列を切り取る必要がある場合は、この関数を直接呼び出すとよい.



読書に感謝して、みんなを助けることができることを望んで、みんなの当駅に対する支持に感謝します!