对于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
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我