如何在Laravel 5中压缩HTML

埃梅卡·姆巴(Emeka Mbah)

在Laravel 4.0中,我使用下面的代码将HTML laravel响应输出压缩到浏览器,但是在laravel 5中不起作用。

App::after(function($request, $response)
{
    if($response instanceof Illuminate\Http\Response)
    {
        $buffer = $response->getContent();
        if(strpos($buffer,'<pre>') !== false)
        {
            $replace = array(
                '/<!--[^\[](.*?)[^\]]-->/s' => '',
                "/<\?php/"                  => '<?php ',
                "/\r/"                      => '',
                "/>\n</"                    => '><',
                "/>\s+\n</"                 => '><',
                "/>\n\s+</"                 => '><',
            );
        }
        else
        {
            $replace = array(
                '/<!--[^\[](.*?)[^\]]-->/s' => '',
                "/<\?php/"                  => '<?php ',
                "/\n([\S])/"                => '$1',
                "/\r/"                      => '',
                "/\n/"                      => '',
                "/\t/"                      => '',
                "/ +/"                      => ' ',
            );
        }
        $buffer = preg_replace(array_keys($replace), array_values($replace), $buffer);
        $response->setContent($buffer);
    }
});

请我如何在Laravel 5中进行这项工作。

要么

如果有的话,请提供一种在laravel 5中压缩HTML的更好方法。提前致谢。

注意:我不希望使用任何laravel软件包来压缩html,只需要一个简单的代码即可完成工作而不会降低性能。

达伦兹

在Larvel 5中推荐的方法是将您的函数重写为中间件如文档中所述:

..此中间件将在应用程序处理请求执行其任务

<?php namespace App\Http\Middleware;

class AfterMiddleware implements Middleware {

    public function handle($request, Closure $next)
    {
        $response = $next($request);

        // Perform action

        return $response;
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章