[Help] why is the ellipsis not displayed when ThinkPHP intercepts a string ??? {$ Vo. title | msubstr0, 8, UTF-8, true} can intercept but does not show ellipsis, what is going on Oh ?? Thank you. ------ Solution ------------------ from the definition of the msubstr function, the function you need is not supported ** & nbsp; + ------------- [help] ThinkPHP intercepts the string
Why not the ellipsis (...) is displayed when a string is intercepted ???
{$ Vo. title | msubstr = 0, 8, 'utf-8', true}
Yes, but no ellipsis is displayed. why ?? Thank you.
------ Solution --------------------
The msubstr function does not support the functions you need.
/**
+ ----------------------
* String truncation, supporting Chinese and other encoding
+ ----------------------
* @ Static
* @ Access public
+ ----------------------
* @ Param string $ str string to be converted
* @ Param string $ start position
* @ Param string $ length truncation length
* @ Param string $ charset encoding format
* @ Param string $ suffix truncated display characters
+ ----------------------
* @ Return string
+ ----------------------
*/
Function msubstr ($ str, $ start = 0, $ length, $ charset = "UTF-8", $ suffix = true)
{
If (function_exists ("mb_substr "))
Return mb_substr ($ str, $ start, $ length, $ charset );
Elseif (function_exists ('iconv _ substr ')){
Return iconv_substr ($ str, $ start, $ length, $ charset );
}
$ Re ['utf-8'] = "/[\ x01-\ x7f] | [\ xc2-\ xdf] [\ x80-\ xbf] | [\ xe0 -\ xef] [\ x80-\ xbf] {2} | [\ xf0-\ xff] [\ x80-\ xbf] {3 }/";
$ Re ['gb2312'] = "/[\ x01-\ x7f] | [\ xb0-\ xf7] [\ xa0-\ xfe]/";
$ Re ['gbk'] = "/[\ x01-\ x7f] | [\ x81-\ xfe] [\ x40-\ xfe]/";
$ Re ['big5'] = "/[\ x01-\ x7f] | [\ x81-\ xfe] ([\ x40-\ x7e] | \ xa1-\ xfe]) /";
Preg_match_all ($ re [$ charset], $ str, $ match );
$ Slice = join ("", array_slice ($ match [0], $ start, $ length ));
If ($ suffix) return $ slice ."... ";
Return $ slice;
}