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格式的字符串,直接調用這個函數即可。
<?php $str="如果需要截取utf-8格式的字符串,直接調用這個函數即可。"; echo truncate_utf8_string($str,10);//輸出結果:如果需要截取utf-8格... ?>
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!