在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] 删除。
我来说两句