我的想法是在服务器端以某种方式缩小 HTML 代码,以便客户端接收更少的字节。
“缩小”是什么意思?
不拉拉链。更像是,例如,jQuery 创建者使用.min .js版本。换句话说,我需要删除不必要的空格和换行符,但我不能删除太多的 HTML 表示更改(例如删除段落中实际单词之间的空格)。
有什么工具可以做到吗?我知道有HtmlPurifier。它能够做到吗?还有其他选择吗?
PS请不要提供正则表达式。我知道只有 Chuck Norris 可以用它们解析 HTML。=]
我的想法是在服务器端以某种方式缩小 HTML 代码,以便客户端接收更少的字节。
“缩小”是什么意思?
不拉拉链。更像是,例如,jQuery 创建者使用.min .js版本。换句话说,我需要删除不必要的空格和换行符,但我不能删除太多的 HTML 表示更改(例如删除段落中实际单词之间的空格)。
有什么工具可以做到吗?我知道有HtmlPurifier。它能够做到吗?还有其他选择吗?
PS请不要提供正则表达式。我知道只有 Chuck Norris 可以用它们解析 HTML。=]
有点晚了,但仍然......通过使用 output_buffering 就这么简单:
function compress($string)
{
// Remove html comments
$string = preg_replace('/<!--.*-->/', '', $string);
// Merge multiple spaces into one space
$string = preg_replace('/\s+/', ' ', $string);
// Remove space between tags. Skip the following if
// you want as it will also remove the space
// between <span>Hello</span> <span>World</span>.
return preg_replace('/>\s+</', '><', $string);
}
ob_start('compress');
// Here goes your html.
ob_end_flush();
您可以将 HTML 代码解析为 DOM 树(应在节点中保留内容空白),然后将其序列化回 HTML,而无需任何美化空格。
有什么工具可以做到吗?
是的,这是一个可以包含在构建过程中或用于 Web 缓存层的工具: https ://code.google.com/archive/p/htmlcompressor/
或者,如果您正在寻找一种工具来缩小您粘贴的 HTML,请尝试: http: //www.willpeavy.com/minifier/
您可以使用 Pretty Diff 工具:http ://prettydiff.com/?m= minify&html 它还会缩小 HTML 代码中的任何 CSS 和 JavaScript,并且缩小以回归的方式进行,以免妨碍将来对 HTML 进行美化回到可读形式。