【问题标题】:How to minify HTML code in PhalconPHP如何在 PhalconPHP 中缩小 HTML 代码
【发布时间】:2014-07-16 20:56:52
【问题描述】:

我在我的测试项目中使用 phalconphp 框架。

我有一个简单的控制器,代码如下:

$this->view->setVar('myData', $data);

PhalconPHP 中是否有任何工具可以缩小视图中的 HTML 代码?

谢谢!

【问题讨论】:

  • 我建议您在网络服务器级别执行此操作。 Google 提供了很好的工具来在网络服务器中实现它。
  • 好主意。为此使用 mod_pagespeed。这个工具有很多功能可以压缩网站及其资源!
  • 谢谢!我会试试的!

标签: php phalcon


【解决方案1】:

目前还不能内置。 但是已经用这个函数实现了缩小选项。

function minifyHTML($content)
{
    $start = strpos( $content, '[#strip#]');

    if ($start > 0) {

        $end = strpos($content, '[#endstrip#]');

        $part =  substr($content,$start, $end - $start + 12);

        $content = str_replace($part,str_replace(array("\r", "\n", "\t" , 
            '[#strip#]', '[#endstrip#]'), '' , $part) , $content);

        if(strpos( $content, '[#strip#]') > 0)
            $content = stripHTML($content);
    }
    return $content;
}

然后在你的 volt 文件中像这样使用它。但请确保在您的 volt 文件中使用制表符作为缩进而不是空格。 [#strip#] 标签也不允许嵌套。

<!DOCTYPE html>
<html lang="nl">
<head>[#strip#]
    <meta charset="utf-8">
    {% block head %}
        {{ assets.outputCss() }}
    {% endblock %}
    <title>{% block title %}{% endblock %}</title>
[#endstrip#]</head>
<body>
{% block content %}
{% endblock %}
{% block script %}
    [#strip#]{{ assets.outputJs() }}[#endstrip#]
{% endif %}
{% endblock %}
</body>
</html>

最后在你的 handle()->getContent() 上使用它。

$application = new \Phalcon\Mvc\Application($di);
echo minifyHTML( $application->handle()->getContent());

【讨论】:

    【解决方案2】:

    CSS 和 JavaScript 被内置函数缩小,您可以在此处看到:http://docs.phalconphp.com/en/latest/reference/assets.html#minification-filtering

    似乎没有用于缩小 HTML 的工具,因为这样做并不常见。但是考虑编写自己的“缩小”功能。没有什么可做的,因为换行符对 HTML 代码没有影响,您可以在输出中删除它们,如下所示:

    str_replace(array("\r\n", "\r"), "", $output);
    

    此外 - 如果您在内容中不使用多个空格 - 您可以像这样删除制表符、换行符和空格:

    preg_replace("/\s+/", " ", $string);
    

    【讨论】:

    • 我看错了。是的 -1 对我来说 :-) 仍然转换为 \r 很奇怪。 “无”使用它。
    • 嗯,你没有错,@PeeHaa。换行符也很重要的一个例子:jsfiddle.net/VNMs9 所以也许使用 mod_pagespeed 毕竟是最好的解决方案。
    猜你喜欢
    • 2011-08-14
    • 1970-01-01
    • 1970-01-01
    • 2010-12-16
    • 2013-08-21
    • 1970-01-01
    • 2016-07-05
    相关资源
    最近更新 更多