Menu
- Aktualności
- Mój startup Nowość
- Blogi ekspertów
- Projektowanie WWW
- Planowanie
- Organizacja i nawigacja
- Webdesign i grafika
- Warsztat - programy
- Tutoriale Photoshop
- Programowanie i tworzenie
- XHTML, HTML i CSS
- JavaScript, DOM i AJAX
- jQuery
- PHP i SQL
- Flash i ActionScript
- Dostępność i WAI
- Promowanie stron
- Pozycjonowanie
- Reklama i marketing
- Monitoring i statystyki
- Publicystyka
- Artykuły ogólne
- Wywiady
- Standardy sieciowe
- Praca i zarabianie
- Zasoby
- Kursy
- Recenzje książek
- Linki
Dla webmastera
Oddzielanie kodu PHP od HTML
Autor: Wojciech Jurewicz, dodano: 24-07-2003
Kategoria: Programowanie i tworzenie
Wiadomo, że kod HTML przeplatający się z kodem PHP jest bardzo nie czytelny, jest sporo metod pozwalających uprościć sobie ten problem, ale każda z metod robi to w różnym stopniu. W artykule tym przedstawię kilka metod oddzielanie kodu PHP od HTML, oczywiście jedne sposoby są lepsze a inne gorsze, ale to w zależności od potrzeb.
Oto niektóre z nich, które zamierzam omówić:
- Standardowy
- całościowy
- wpleciony
- Implementacja
- Fast Template
Standardowy:
Sposób standardowy to nic innego jak pisanie kodu PHP i HTML w jednym, ale są dwa główne rodzaje: całościowy i wpleciony. Całościowy opiera się na wplataniu znaczników HTML w kod PHP, natomiast wpleciony na wplataniu kodu PHP pomiędzy znaczniki HTML. Kod w zapisie całościowym wygląda przykładowo tak:
| <?php $imie = "Jan"; $nazwisko = "Kowalski"; echo "<table>"; echo "<tr>"; echo "<td>Imię</td>"; echo "<td>Nazwisko</td>"; echo "</tr>"; echo "<tr>"; echo "<td>echo $imie</td>"; echo "<td>echo $nazwisko</td>"; echo "</tr>"; echo "</table>"; ?> |
dałoby to w wyniku:
| Imię Nazwisko Jan Kowalski |
Natomiast kod w zapisie wplecionym wyglądałby tak:
| <?php $imie = "Jan"; $nazwisko = "Kowalski"; ?> <table> <tr> <td>Imię</td> <td>Nazwisko</td> </tr> <tr> <td><?php echo $imie ?></td> <td><?php echo $nazwisko ?></td> </tr> </table> |
wynik byłby identyczny:
| Imię Nazwisko Jan Kowalski |
Można to także zrobić definiując wcześniej funkcje wyświetlające:
| <?php function wys( $co ) { echo ${$co}; } $imie = "Jan"; $nazwisko = "Kowalski"; ?> <table> <tr> <td>Imię</td> <td>Nazwisko</td> </tr> <tr> <td><?php wys("imie"); ?></td> <td><?php wys("nazwisko"); ?></td> </tr> </table> |
Wynik dalej byłby identyczny:
| Imię Nazwisko Jan Kowalski |
To tyle, jeśli chodzi o sposób standardowy.
Implementacja
. Polega ona na zdefiniowaniu pliku wejściowego, a następnie dołączeniu go do kodu za pomocą include() lub require(). Na przykład cały nagłówek, który jest wspólny dla całego serwisu, wraz z atrybutami meta mógłby wyglądać tak:
| <--!head.html--> <!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-2"> <meta name="Keywords" content="słowa kluczowe"> <title>tytul</title> </head> <body> |
oraz stopka:
| <--!foot.html--> </body> </html> |
Teraz plik z kodem:
| <!--index.php--> <?php include("head.html"); //treść strony w PHP include("foot.html"); ?> |
równie dobrze można dołączać kod PHP do pliku HTML (ale z rozszerzeniem PHP):
| <!--formularz.php--> <?php echo "<form name=\"formularz\" action=\"$PHP_SELF\" method=\"post\">"; echo "<input type=\"text\" name=\"adres\" value=\"http://\">"; echo "<input type=\"submit\">"; echo "</form>"; ?> |
plik z kodem HTML wyglądał by następująco:
| <!--index.php--> <!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-2"> <meta name="Keywords" content="słowa kluczowe"> <title>tytul</title> </head> <body> //treść strony <?php include("formularz.php"); ?> //dalsza treść strony </body> </html> |
tak się prezentuje metoda implementacji.
FastTemplate
System szablonów. Jest to bardzo efektywna a zarazem efektowna metoda, ponieważ pozwala zapisywać kod PHP w oddzielnym pliku a kod HTML w oddzielnym, tyle, że zawierający specjalne tzw. Tagi Szablonów. Jednak przygotowanie takiego systemu szablonów jest nieco trudniejsze i omówię je w oddzielnym artykule. W systemie tym plik szablonu ma zazwyczaj rozszerzenie "tpl" i jest to plik, który zawiera kod HTML z tagami szablonu. Przykładowy plik .tpl.
| <!--example.tpl--> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-2"> <meta name="Keywords" content="słowa kluczowe"> <title>{tytul}</title> </head> <body> //treść strony Mam {moj_wiek} lat. I jestem uczniem {moja_klasa} klasy. </body> </html> |
Tagi szablonów są zawarte pomiędzy nawiasy szaścienne "{" i "}". Do tego jest potrzebny plik, który będzie wczytywał ten szablon. W pliku tym powinna być zdefiniowana klasa, która będzie odczytywała wartości z nawiasów i odpowiednio je interpretowała. W ten sposób np. mój wiek może się zmieniać wraz z klasą bez żadnej ingerencji w zawartość strony. Dodatkową zaletą jest czytelność kodu. Gotowym i bardzo znanym systemem obsługi szablonów jest Smarty dostępny na stronie http://smarty.php.net. Jeśli kogoś interesuje ta metoda zapraszam do przeczytania artykułu na temat tego jak działają FastTemplate lub artykułu o Smarty.
Komentarze:
Dodaj komentarz:
Najlepiej oceniane artykuły
- O kulisach działania 8.1 PO IG(3.79)
- Turystyka internetowa - raport Google(3.62)
- Historia programu Adobe Photoshop(3.56)
- 5 grzechów początkującego webmastera(3.29)
- FAQ HTML - Najczęściej zadawane pytania początkujących(3.29)
- Zabezpieczenie pliku Flash przed importem(3.26)
- Wprowadzenie do wyrażeń regularnych standardu zgodnym z Perlem(3.25)
- Podstawy promowania stron WWW(3.24)
Najnowsze wiadomości
- Blogger wprowadza szablony na bloga i tła graficzne
- Jutro trzeci ShopCamp
- ipla przekroczyła w lutym 2 miliony UU
- Maperia: nowy polski lokalizator społecznościowy
- Nowe menu w Naszej-klasie
- Sprostowanie do informacji
- Dotacje na e-usługi: wnioski tylko przez internet!
- YouTube miażdży konkurencję, Hulu ciągle daleko


