Skocz do zawartości
  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

CzareK

Kompresja (minifikacja) kodu HTML w PHP

Promowane odpowiedzi

Kompresja (minifikacja) kodu HTML w PHP

W naszym kodzie HTML (np. index.php) przed:

<!DOCTYPE html>

Dodajemy:

<?php
function sanitize_output($buffer) {
    $search = array(
        '/\>[^\S ]+/s',  
        '/[^\S ]+\</s',  
        '/(\s)+/s' 
    );
    $replace = array(
        '>',
        '<',
        '\\1'
    );
    $buffer = preg_replace($search, $replace, $buffer);
    return $buffer;
}
ob_start("sanitize_output");
?>

Oraz po:

</html>

Dodajemy:

<?php
ob_end_flush(); 
?> 

Krótszy kod PHP, który działa podobnie jak ten wyżej.

<?php
function ob_html_compress($buf){
    return str_replace(array("\n","\r","\t"),'',$buf);
}
ob_start("ob_html_compress");
?>

oraz

<?php
ob_end_flush();
?>

Efekt końcowy.

 

Przed:

 

s1.png.47044729ac352418cf45a1243aa19873.

 

Po:

 

s2.thumb.png.a2a72ac9591dedf85f02be18d9b

 

Kod PHP nr 1 pochodzi ze strony php.net.

Kod PHP nr 2 pochodzi ze strony Coderwall.

  • Lubię to! 4

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

  • Podobna zawartość

    • Przez scrim
      Witam wrzucam kolejną stronkę, która miała rzeczywiście wypalić ale firma która miała odebrać zamówienie się rozmyśliła, więc zostawiłem projekt 2 miesiące temu w takim stanie bez kończenia czegokolwiek i dopiero wczoraj dokończyłem w miarę możliwości stopkę etc. Nie mam zamiaru nad tym siedzieć więcej bo do niczego to nie doprowadzi a może komuś się przyda Tak więc wrzucam w DL.
      Projekt w RWD.
       

      niemiecki.rar
    • Przez Lord Fenrir
      Cześć, stworzyłem sobie klasę, którą wykorzystuje do łączenia się z bazą danych i teraz mam mały problem gdyż nie wiem, w którym momencie i kiedy powinienem ją wywoływać. Przy każdej akcji, która się wykona powinienem dołączać za pomocą require_once() plik z danymi czy może jest na to jakiś inny sposób? Bo na logikę takie rozwiązanie średnio mi pasuje gdyż za każdym razem będzie tworzony nowy obiekt, a to raczej nie jest najlepsze rozwiązanie, prawda? Chociaż z drugiej strony back-endu w ogóle nie tykam więc nie za bardzo się znam.
×