正在读取数据,页面载入中,请稍后...

织梦模板压缩前端代码,并且可以过滤注释不显示

看过很多的网站,看到别人的网站,前端的页面都是压缩过的,压缩过的代码,除了加载快、节省空间以外,更显得有格调。下面,小千就将这个代码,给大家分享一下,让你的网站,与别人的网站与众不同,织梦网站,也是可以高调一番。

教程开始

dedetag.class.php

打开 /include/dedetag.class.php 文件,搜索

Display()

然后把这个函数改为

function Display()
{
    //echo $this->GetResult();
    $muban = $this->GetResult();
    $muban = preg_replace('#<!--{(.*?)}-->#','', $muban);
    //$muban = preg_replace('#<!--{kan\s+(.*?)}-->#','', $muban);//<!--{kan muban.htm}-->
    $muban = preg_replace('/\s+/', ' ', $muban);
    $muban = trim($muban);
    echo $muban;
}

对的,没错,就是这么饿简单,就是改这么一句代码,就可以实现前端代码自动压缩了,但是有一个问题,这个Display()的方法,只对动态、伪静态的模板有用,意思就是,如果,你的网站是静态的,那么,只改这一个地方还是不够的哦。继续看下面,紧跟着的,就是静态模板生成文件了。

静态网站

还是这个文件,继续搜索

function SaveTo($filename)

其实,这个函数,就在下面一行,把这个整个方法都改为

function SaveTo($filename)
{
    $muban = $this->GetResult();
    $muban = preg_replace('#<!--{(.*?)}-->#','', $muban);
    //$muban = preg_replace('#<!--{kan\s+(.*?)}-->#','', $muban);//<!--{kan muban.htm}-->
    $muban = preg_replace('/\s+/', ' ', $muban);
    $muban = trim($muban);
    $fp = @fopen($filename,"w") or die("DedeTag Engine Create File False");
    fwrite($fp,$muban);
    fclose($fp);
}

这样改了以后,就算你的网站是静态的,生成的静态网页,也是前端自动压缩代码的哦。当然,除了压缩以外,我还给大家整了一个小功能,那就是注释,写代码怎么能够少得了注释,如果不给注释,一般自己看都费劲,今天写的,明天就忘记了,等一年以后,发现,这瞎几把写的啥。

支持注释

一般,HTML都是用<!-- 注释掉的代码 -->的注释。但是,有一个问题,那就是你加的注释,在前端都会显示,说得简单点,就是把智商完全暴露了。很多人在想,怎么样,能把这个注释写上,又不让它显示出来呢?其实,就我上面的代码中,已经完全实现,这种注释标签不显示了,下面就上织梦模板的写法。

模板写法

<!DOCTYPE>
<html>
<head>
<title>无标题文档</title>
</head>
<!-- 这样写的注释会显示 -->
<!--{这样写的注释不会显示}-->
<body>
</body>
</html>

你能明白我的意思吗?意思就是,模板可以加注释了,你想怎么加,你就怎么加,并且,前端生成的静态网页,都是压缩、过滤好的。对于举个例子的,你就右击,看我的网站源码就行了,对的,就是这个效果,不知道的,以为这个效果很难,想要这个效果,就是这么简单。

织梦缺陷

织梦模板压缩前端代码,并且可以过滤注释不显示 - 全民博客

作为一个织梦爱好者,真的是把织梦玩转了,发现一个弊端,那就是织梦模板内,不支持原生的PHP代码,织梦模板,虽然可以会用{dede:php}来代替PHP标签,但是,还是存在一定问题的,像多重的PHP判断,{dede:php}就没法实现。其原因是,织梦读取模板内的代码,只读取织梦的内置调用标签,对于非织梦调用标签,织梦都是不读取、不识别的。

这个不识别原生的PHP标签,对织梦程序来说,是一种安全防护措施,但大家可以加自定义方法、写自定义函数来解决,想在织梦模板加PHP标签,也就是只能用{dede:php}来代替了,所以,不要吐槽再织梦模板不支持PHP标签了,而是,你的添加方式不对,你加个自定义函数方法就能轻松解决了,就是大家所谓的织梦二次开发吧。

本文结束

评论专区

发表评论

评论列表(无评论)