折腾Typecho插件Minify
发布于 分类 Typecho
更新于 2020-10-08
27天前 有1个用户阅读过
相对于服务器安装minify模块,对我而言,HTML页面压缩使用PHP版的minify定制型强,所以灵活性更高一些。
有个使用typecho的项目,需要吧HTML源码压缩一下!我的博客现在的Minify代码部分可以复用。
看了一下Typecho手册的插件开发说明,也Google了一下Demo, 捣鼓成功!
项目GITHUB地址 https://github.com/imnoco/Minify_for_Typecho/
把文件放在 /usr/plugins/Minify/ 目录下即可,功能仅仅就是启用和禁用!
代码还算是轻量,针对绝大多数情况的HTML压缩可用,为了偷懒,对于可能的特殊需求搞个自定义设置好像也暂无必要,估计知道要自定义的人,也都自己捣鼓了!
Minify核心部分代码如下
public static function minify($buffer){
$content=$buffer;
// 1.标签前后留空格是为了a标签前后的文字不连在一起,但会存在<> text </>
// 2.不针直接对多余空格缩减,避免对<pre><code>等特殊标签中的内容影响
$pattern = array(
"/\s+</",
"/>\s+/",
"/>\s+</",
//"/\s+/",
"/ \"/",
"/<p><br[^>]*><\/p>/i"
);
$replace = array (
" <",
">",
"><",
//",
"\",
"
);
$content = preg_replace($pattern, $replace, $content);
// 去除注释
$content = preg_replace("/<!--[^\!]+-->/i",", $content);
// 去除schema
$content = preg_replace("/\sitem\w+\s/i",", $content);
$content = preg_replace("/\sitem\w+\=[\"\'][^\"\']+[\"\']/i",", $content);
return $content;
}
-- The End --