W laravel 4.0, używam poniższy kod do kompresji wyjść odpowiedzi HTML laravel do przeglądarki, jednak nie działa w laravel 5.Jak mogę skompresować HTML w 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);
}
});
proszę jak zrobić dokonać tej pracy w laravel 5.
LUB
Proszę podać lepszy sposób kompresji HTML w laravel 5 jeśli dowolny. Z góry dzięki.
NB: Nie chcę używać żadnego pakietu laravel do kompresji html, wystarczy prosty kod, który wykonuje pracę bez utraty wydajności.
Wiem, że powiedziałeś, że nie chcesz pacakge - ale https://github.com/GrahamCampbell/Laravel-HTMLMin jest idealnym rozwiązaniem. A to nie "zabije osiągów" inaczej niż gdybyś zrobił to sam. – Laurence
Odradzam to, co próbujesz zrobić _at all_ - element 'pre' nie jest jedyną rzeczą, w której biała przestrzeń może mieć znaczenie, ale także wewnątrz' textarea'/'input' lub zasadniczo w _any_ elemencie, jeśli pojawi się później na _formatted_ przez CSS ('white-space'). Po prostu __GZip__ dane wyjściowe przed wysłaniem go do klienta, jest o wiele bardziej skuteczne niż zakłócanie samego kodu HTML. – CBroe
@ cbroe Jak korzystać z GZip? każdy przykład pracy – Digitlimit