If thinkphp's string truncation function cannot display ellipsis, you can refer to the following solution: Open the common/extend. php page and modify the msubstr function:
- Function msubstr ($ str, $ start = 0, $ length, $ charset = "UTF-8", $ suffix = true)
- {
- If (function_exists ("mb_substr ")){
- If ($ suffix)
- {
- If ($ str = mb_substr ($ str, $ start, $ length, $ charset ))
- {
- Return mb_substr ($ str, $ start, $ length, $ charset );
- }
- Else
- {
- Return mb_substr ($ str, $ start, $ length, $ charset )."...";
- }
- } // Bbs.it-home.org
- Else
- {
- Return mb_substr ($ str, $ start, $ length, $ charset );
- }
- }
- Elseif (function_exists ('iconv _ substr ')){
- If ($ suffix)
- {
- If ($ str = iconv_substr ($ str, $ start, $ length, $ charset ))
- {
- Return iconv_substr ($ str, $ start, $ length, $ charset );
- }
- Else
- {
- Return iconv_substr ($ str, $ start, $ length, $ charset )."...";
- }
- }
- Else
- {
- 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;
- }
When using the above function to intercept a string, you can display the ellipsis. you can test and see how it works. |