如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

苏南大叔为大家带来了smarty的进阶版的使用教程,去除smarty输出的html中的所有的html中的回车换行空白注释等。这种做法,在现在是个流行的趋势,即代码压缩。

js和css都被压缩了,那么html有什么理由不被压缩呢?对吧?

苏南大叔的答案:

$smarty = new \Smarty;
//......
function compress_html($html) {
    $html = preg_replace(':\s+//.*?\n:', '', $html);
    $html = preg_replace('/<!--\s*[^[][^!][^<].*?-->/s', '', $html);
    $html = preg_replace('/\/\*.*?\*\//s', '', $html);
    $html = preg_replace('/>\s*</s', '><', $html);
    $html = preg_replace('/(\s)+/s', ' ', $html);
    return trim($html);
}
$smarty->registerFilter("output", "compress_html");

网上流行的说法:

在smarty.class.php里添加一个去除多余空格回车的方法。

function striphtml($html)
{
    $html = preg_replace(':\s+//.*?\n:', '', $html);
    $html = preg_replace('/<!--\s*[^[][^!][^<].*?-->/s', '', $html);
    $html = preg_replace('/\/\*.*?\*\//s', '', $html);
    $html = preg_replace('/>\s*</s', '><', $html);
    $html = preg_replace('/(\s)+/s', ' ', $html);
    return trim($html);
}

然后修改,/smarty3/libs/sysplugins/smarty_template_source.php 这个文件中的getContent()方法。

public function getContent()
{
    return isset($this->content) ? $this->striphtml($this->content) : $this->striphtml($this->handler->getContent($this));
}

对比说明

苏南大叔个人觉得,我写的这种比网上流传的更好些,因为毕竟没有破坏smarty3的完整性。您觉得呢?

效果截图

最后再贴出压缩完的效果截图。

smarty压缩html代码 - html_compress

smarty压缩html代码(图1-1)

就苏南大叔个人来说,不是太喜欢这种压缩效果,更喜欢tidy后的代码完美输出。不过,既然,这个是个趋势,那么大家就学习学习吧~

  【php】秘籍文章入口,仅传授于有缘之人  php    smarty

欢迎转载传播本篇原创文章,转载请保留链接及作者信息。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

苏南大叔需要你的支持

打赏任意金额,发送截图到邮箱 shang@newsn.net ,可以领取精选回馈如下(任选其一):
  • 《前端视频教程大礼包》一套
  • 《wordpress精选皮肤》一套
  • 《dedecms织梦精选模板》一套
感谢您的打赏,让我更有动力,将更多精彩教程文章,呈现给大家!谢谢!

岁月静好

关注互联网发展,关注苏南大叔的《程序如此灵动~》博客
本文章来自:程序如此灵动~
博客地址为:https://newsn.net/
原文地址为:https://newsn.net/say/smarty-compress-html.html
上一篇好文:利用composer安装smarty
下一篇好文:smarty如何利用tidy格式化html代码?

如果您转载了本文章,出于某种原因,并没有注明作者或者出处。
在这里,苏南大叔也表示理解和支持。因为苏南大叔深深地明白:
您会在合适的时机,合适的地方,给本博客一个外链。对吧?
您若开心,便是安好!岁月静好,但愿世界和平,没有纷争~