Przejdź do treści
Cream Software
  • Start
  • Aplikacje
  • App Store
  • Google Play
  • O nas
  • Jak działamy
  • Blog
  • Kontakt
    • 🇵🇱 Polski
    • 🇺🇸 English
    • 🇵🇱 Polski
    • 🇺🇸 English

    Blog

    Ładne formatowanie w PHP czy kompresja kodu strony?

    Opublikowano
    20 marca 2003
    Aktualizacja
    27 marca 2023
    • PHP - Perl - mySQL
    • #formatowanie
    • #php
    • #programowanie
    Ładne formatowanie w PHP czy kompresja kodu strony?

    Autor: Sylweriusz

    Czy istnieje sposób aby pogodzić sprzeczności ? Z jednej strony chcemy w serwisach tworzonych przez siebie stosować czytelny kod, a z drugiej strony zajmuje to dodatkowe bajty. Przykład zastosowania buforowania strony w PHP.

    Czasem dla kilku bajtów oszczędności decydujemy się zrezygnować z czytelności kodu który z mozołem tworzymy. Późniejsze wprowadzenie poprawek, zmiana układu, itp działania są wtedy mocno utrudnione. Musimy wybierać czytelny kod, z wcięciami, odstępami, taki który można łatwo zrozumieć na pierwszy rzut oka, czy skompresowany nieczytelny ciąg tagów i tekstu, albo coś pośredniego.

    Poniżej zaproponuję przykład rozwiązania umożliwiającego pogodzenie tych pozornych sprzeczności.

    Rozwiązanie wykorzystuje funkcję buforowania strony w PHP w taki sposób że przed wysłaniem strony do przeglądarki następuje wycięcie wszystkich znaków które nie są konieczne dla jej wyświetlenia, a tylko zajmują miejsce.

    Przykładowa funkcja kompresująca kod wygląda tak:

    function _code_compress($content) 
    { 
    //skasowanie pustych tytułów 
    $content = str_replace(" title=\"\"","",$content); 
    $content = str_replace(" alt=\"\"","",$content); 
    //skasowanie znaków końca linii 
    $content = str_replace("\n","",$content); 
    $content = str_replace("\r","",$content); 
    //skasowanie spacji 
    $content = str_replace("     "," ",$content); 
    $content = str_replace("    "," ",$content); 
    $content = str_replace("   "," ",$content); 
    $content = str_replace("  "," ",$content); 
    $content = str_replace("  "," ",$content); 
    return $content; 
    } 

    Efektem działania powyższej funkcji jest jedna linia kodu zawierająca całą zawartość strony bez zbędnych spacji czy znaków końca wiersza.

    Należy pamiętać że jeżeli w kodzie strony zaszyjemy np. skrypty javascript to one też pozostaną potraktowane w ten sposób.

    Zastosowanie tej funkcji sprowadza się do jej wywołania na stronie jak w poniższym przykładzie:

    <? 
    //wczytanie pliku z funkcja kompresującą 
    include "funkcje.php"; 
    //włączenie buforowania z filtrowaniem funkcją kompresującą kod 
    ob_start("_code_compress"); 
    ?><html> 
    <head> 
    <meta http-equiv="Content-type" content="text/html; 
    charset=iso-8859-2"> 
    <meta http-equiv="Content-Language" content="pl"> 
    <meta http-equiv="Pragma" content="no-cache"> 
    </head> 
    <body><table border="0"> 
    <tr> 
            <th>Nagłówek 1</th> 
            <th>Nagłówek 2</th> 
            <th>Nagłówek 3</th> 
    </tr> 
    <tr> 
            <td> 
                    
            </td> 
            <td> 
            
            </td> 
            <td> 
            
            </td> 
    </tr> 
    </table> 
    </body> 
    </html><? 
    //wysłanie strony do przeglądarki 
    ob_end_flush(); 
    ?> 

    Powyższa przykładowa strona w wersji oryginalnej miała około 480 bajtów, po przepuszczeniu przez filtr około 350 bajtów.

    Realnie można tą metodą zyskać około 5-10% to nie jest może dużo, ale czasem liczy sie nawet tyle.

    Należy pamiętać o tym że buforowanie strony można w obrębie dokumentu stosować wielokrotnie, włączać i wyłączać dla tych jej fragmentów które chcemy buforować.

    Zachęcam do dalszych modyfikacji tej funkcji jeżeli zdecydujecie się ją zastosować.

    Notatka: W Pajączku 5 NxG w menu “Narzędzia / Formatowanie i kompresja kodu” znajduje się kilka narzędzi ułatwiajacych zmniejszanie rozmiaru strony oraz ładne formatowanie.

    Powiazane aplikacje Cream Software

    Jesli ten temat jest Ci bliski, sprawdz nasze aplikacje i narzedzia.

    • Spider V6
    • Gonna Rain?
    • Money Gone?!
    • Heartie

    Kategorie

    • Grafika i foto na WWW
    • HTML i tworzenie stron
    • Internet
    • JavaScript VBScript Ajax
    • Mobile
    • Nowe wersje programów
    • Nowości w Cream Software
    • Odtwarzanie i konwersja filmów
    • Odzyskiwanie danych
    • Pająk
    • PHP - Perl - mySQL
    • Sprzęt
    • Style CSS
    • Wpis gościnny
    • Zamknięte projekty

    Nowoczesne aplikacje mobilne i desktopowe, które działają latami.

    Polityka prywatności | Regulamin | Kontakt

    © Cream Software. Wszelkie prawa zastrzeżone.

    Developed by cream.software

    Mierzymy wizyty bez analitycznych cookies. Po Twojej zgodzie używamy także analitycznych cookies. Szczegóły znajdziesz w Polityce prywatności.