【问题标题】:How to parse HTML for minification in PHP?如何在 PHP 中解析 HTML 以进行缩小?
【发布时间】:2011-03-10 04:41:56
【问题描述】:

我正在寻找一种算法来压缩我用 PHP 编写的 CMS 的 HTML 输出,并使用 CodeIgniter 框架编写。

我正在考虑尝试删除任何尖括号之间的空格,<script><pre><style> 元素除外,并且为了简单起见简单地忽略这些元素。我应该澄清一下,这是连续标签之间的空白,它们之间没有文字。

我应该如何解析 HTML 以找到我想要删除的空格?

编辑: 首先,我想删除所有不在<pre> 标签中的制表符。这可以用正则表达式来完成,我敢肯定,但有什么替代方案?

【问题讨论】:

标签: php html codeigniter html-parsing


【解决方案1】:

不要。空格可以忽略不计。最好使用输出压缩,with zlibhere for example

【讨论】:

  • 我已经用压缩输出了,想看看能不能成功缩小HTML。
  • 努力并不能证明节省是合理的,而且它可能会在某些时候导致问题,例如 Gordon 提到的。
  • 我意识到这可能不值得付出努力,但我正在努力迎接挑战。
【解决方案2】:

现有的 HTML 缩小方案有问题吗?

Minify 执行 HTML(以及 CSS 和 JS)。

(第二个链接指向源代码,它包含了它所采取的步骤 - 如果您确实想创建自己的,应该是一个很好的帮助 - 它是BSD licensed。)

另外,作为Pete says,通过对 HTML(和 CSS/JS/等)使用 gzip 压缩,您将受益更多,并且不会被 Gordon 提到的问题所困扰在他的评论中。

【讨论】:

  • 我忘记了 Minify 使用 HTML。我已经将它用于 JS 和 CSS 缩小。另外,我很好奇它是否可以在没有这么多正则表达式的情况下完成。我的印象是正则表达式相当低效。
  • RegEx的问题在于效率较低,而且HTML不是Regular语言,所以不能用regex正确解析。您可以研究 PHP 的 HTML DOM 解析 (php.net/manual/en/book.dom.php) 并考虑编写一些使用该解析的内容,然后再次输出而不使用空格。
猜你喜欢
  • 1970-01-01
  • 2013-08-23
  • 2022-11-20
  • 1970-01-01
  • 1970-01-01
  • 2011-03-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多