缩小在其中嵌入PHP的HTML

时间:2012-09-16 19:07:36

标签: php html minify

我知道这是非常小的性能调整,但我想简化一个内嵌PHP的HTML文档。

例如:

<div id="header">
  <?php
    echo "<ul>\n<li>";
    echo $somevar;
    echo "</li>\n<ul>\n";
  ?>
</div>

会产生以下输出:

<div id="header">
  <ul>
    <li>Foobar</li>
  <ul>
</div>

但我希望将输出缩小。我可以从PHP输出中手动删除空格和行结尾,所以它看起来像这样:

<div id="header">
  <ul><li>Foobar</li><ul></div>    

但是周围的HTML文档也需要缩小。如何才能做到这一点? (在更大的文档上下文中想象这个例子。)

1 个答案:

答案 0 :(得分:2)

您可以使用简单的正则表达式删除所有不必要的空格:

preg_replace('#>\s+<#s', '><', $html);

(这会删除><个字符之间的所有空格。)

现在要对生成的html代码执行此操作,您可以使用输出缓冲:

<?php
ob_start();
// everything bellow is captured and not echoed
?>
<div id="header">
    ...
</div>
<?php
// get generated html and stop buffering
$html = ob_get_clean();
echo preg_replace('#>\s+<#s', '><', $html);
?>