THINKPHP5 fastadmin 截取标题长度并加省略号

"这个博客分享了一个PHP函数msubstr,用于字符串截取,支持中文和其他编码。函数首先尝试使用mb_substr和iconv_substr,如果这两个函数不存在,则通过正则表达式进行截取。在前端模板中可以直接调用此函数,例如:`{$item.description|msubstr=0,80,'utf-8',true}
摘要由CSDN通过智能技术生成

common.php文件写下如下函数

/**
         * 字符串截取,支持中文和其他编码
         * @static
         * @access public
         * @param string $str     需要转换的字符串
         * @param int    $start   开始位置
         * @param int    $length  截取长度
         * @param string $charset 编码格式
         * @param bool   $suffix  截断显示字符
         * @return string
         */
        function msubstr($str, $start = 0, $length = 1, $charset = 'utf-8', $suffix = true)
        {
            if (function_exists('mb_substr')) {
                $slice = mb_substr($str, $start, $length, $charset);
            } else if (function_exists('iconv_substr')) {
                $slice = iconv_substr($str, $start, $length, $charset);
            } else {
                $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));
            }
            return $suffix ? $slice . '...' : $slice;
        }
函数创建完成,就可以在前端模板直接使用了
{$item.description|msubstr=0,80,'utf-8',true}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值