帝国cms常见问题:多终端手机版内容图片压缩的方法

PC端下上传的内容图片一般比较大,在移动端下加载会很慢,此时我们需要把这些图片处理下那么可以借助PHP的函数 preg_replace_callback: 函数执行一个正则表达式搜索并且使用一个

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

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

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

直接看代码:F0kECMSPLUS

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

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

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

在前面添加代码:F0kECMSPLUS

$r = NewsTextReplace($r);F0kECMSPLUS

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

如下示例代码:

<p>// 内容图片压缩处理<br />function NewsTextReplace($add){<br />&nbsp; &nbsp; $add[&#39;newstext&#39;] = preg_replace_callback(<br />&nbsp; &nbsp; &nbsp; &nbsp; &#39;/&lt;img.*?src=&quot;(.*?)&quot;.*?&gt;/is&#39;,<br />&nbsp; &nbsp; &nbsp; &nbsp; function ($callback) {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return &#39;&lt;img src=&quot;&#39; . sys_ResizeImg($callback[1], 370, 200, 3) . &#39;&quot; width=&quot;100%&quot;&gt;&#39;;<br />&nbsp; &nbsp; &nbsp; &nbsp; },<br />&nbsp; &nbsp; &nbsp; &nbsp; stripslashes($add[&#39;newstext&#39;])<br />&nbsp; &nbsp; );<br />&nbsp; &nbsp; $add[&#39;newstext&#39;] = addslashes($add[&#39;newstext&#39;]);<br />&nbsp; &nbsp; return $add;<br />}</p>
分享到 :
相关推荐

发表评论

登录... 后才能评论

评论(3)

加入本站VIP会员订阅计划,海量资源免费下载查看

目前为止共有3位优秀的VIP会员加入!

立即加入VIP会员