您当前的位置:首页 > 帝国CMS > 帝国教程

帝国CMS多终端手机版内容图片压缩的方法

注意:如果要使用本方法一定要先修改gd.php,教程参考:[7.X版] 帝国CMS缩略图函数改进(GD库改进)

PC端下上传的内容图片一般比较大,在移动端下加载会很慢,此时我们需要把这些图片处理下

那么可以借助PHP的函数 preg_replace_callback: 函数执行一个正则表达式搜索并且使用一个回调进行替换。

直接看代码:

// 内容图片压缩处理
function NewsTextReplace($add){
    $add['newstext'] = preg_replace_callback(
        '/<img.*?src="(.*?)".*?>/is',
        function ($callback) {
            return '<img src="' . sys_ResizeImg($callback[1], 370, 200, 3) . '" width="100%">';
        },
        stripslashes($add['newstext'])
    );
    $add['newstext'] = addslashes($add['newstext']);
    return $add;
}

把代码放到userfun.php中,在内容页模板里调用即可,如果是动态和伪静态,则需要在/e/action/show.php里打开对应的位置放置即可。

打开/e/action/show.php搜索 $GLOBALS['navclassid'] = $r['classid'];

在前面添加代码:

$r = NewsTextReplace($r);

此方法适合基于栏目伪静态插件下使用,其他方式同理,自行研究。