天天看點

php截取字元串utf8,php 截取utf-8格式的字元串執行個體代碼

php 截取utf-8格式的字元串

php中,我們經常需要截取字元串。英文字元占用一個位元組,中文字元占用兩個位元組,但中文字元占用兩個位元組是相對于GBK編碼而言但是在時下國際流行的UTF8編碼中,一個中文字元占用3個位元組。本文章向大家介紹一個php 截取utf-8格式字元串的函數。

舉例說明:

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格式的字元串,直接調用這個函數即可。

$str="如果需要截取utf-8格式的字元串,直接調用這個函數即可。";

echo truncate_utf8_string($str,10);//輸出結果:如果需要截取utf-8格...

?>

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支援!