Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Uporządkowanie kodu HTML przed wysłaniem do przeglądarki
Forum PHP.pl > Forum > PHP
craft91
Witam, czy istnieje sposób na uporządkowanie kodu HTML przed wysłaniem do przeglądarki?

Zawsze w swoich aplikacjach używam buforu, który na końcu po prostu się pokazuje.

W kodzie php używam szablonów itd., które sprawiają, że kod wygląda super, ale nie potem w kodzie źródłowym, który może podejrzeć użytkownik. Jednak ładnie by było, gdyby kod ten był uporządkowany.
Automatycznie porządkuje go np. Firefox, ale inne przeglądarki nie, z tego, co mi wiadomo.
Mephistofeles
A po co to? Kod lepiej skompresować, usunąc białe znaki, a nie bawić się w ładny wygląd w źródle.
Btw Chrome też ma pretty-printer.
craft91
Dziękuję za szybką odpowiedź, ale mimo wszystko chciałbym się dowiedzieć, czy jest na to sposób i jeśli tak, jaki.
Pytałem, jak to zrobić, a nie, jakie płyną z tego korzyści smile.gif

Gdyby ktoś znał, odpowiedź, byłbym wdzięczny.

Oczywiście, jeśli okaże się to zbyt skomplikowane, trudne, niewarte zachodu, zaniecham tego pomysłu.

Jeśli chodzi o kompresję, ciekawa uwaga, sprawdziłem na przykładowym pliku mojej witryny:
przed skompresowaniem: 8477b, po skompresowaniu 5773b. To ponad 30% mniej. Ale z drugiej strony... to nawet nie 3kb. Kompresja samego kodu źródłowego chyba ma bardzo małe znaczenie, kiedy na stornie pojawiają się obrazki inna zawartość, która waży znacznie więcej. Właśnie dlatego uporządkowany kod w tym przypadku chyba byłby dla mnie słuszniejszym rozwiązaniem.
Crozin
Kod źródłowy strony niemal zawsze przegląda się przy pomocy narzędzi deweloperskich udostępnianych przez przeglądarkę, więc również nie rozumiem po co upiększać ten kod.

Jednak wracając do tematu. Musiałbyś tuż przed wysłaniem finalnego kodu przechwycić go, a następnie przy pomocy jakiegoś narzędzia ładnie sformatować. Mógłbyś to zrobić np. przy pomocy DOMDocument (patrz: DOMDocument::formatOutput) - może i nie najlepsze narzędzie jeżeli zależy Ci wyłącznie na sformatowaniu kodu, ale też da radę.
craft91
Popatrzyłem mocno na DOMDocument, ale wydaje mi się, że nadaje się on do formatowania XML, nie XHTML, może jestem w błędzie.

Ale mój kod formatuje baardzo minimalnie. Poza tym nie idzie mu robienie odstępów. Dodam, że kod jest dobrej jakości, poprawny itd. Inne pomysły? Pytam, bo przeszukałem Google'a i mam wrażenie, że nie ma na to sposobu (oprócz własnego parsera...)
viking
Możesz http://www.php.net/manual/pl/tidy.parsestring.php przelecieć chociaż też nie widzę sensu. Raczej w ustawieniach modyfikuje się żeby przy zmiennej DEV był ładny kod, a kiedy ustawione PROD usuwał co zbędne i kompresował.
craft91
Każde z w/w narzędzi jest niedoskonałe. Dziękuję za odpowiedzi. Nie będę się już przejmował białymi znakami w wyjściowym kodzie HTML smile.gif
wNogachSpisz
Output i tak prawie zawsze zostanie skompresowany, zrobi to moduł apacha.

W Codeigniterze możesz to rozwiązać na dwa sposoby:
1. Rozszerzyć biblitekę CI_Output przez utworzenie nowej o nazwie MY_Output i zadeklarować w niej nową funkcję _output.
2. Założyć tzw system hook (coś w rodzaju eventów) pod zdarzenie "display_override".
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.