对于ThinkPHP的截取字符串函数无法显示省略号的情况,解决方法如下:
打开Common/extend.php页面,修改msubstr函数如下:
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).\"...\"; } } 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; }
本文地址:https://www.stayed.cn/item/6676
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我