![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 18.06.2016 Ostrzeżenie: (0%) ![]() ![]() |
Mam pytanie dotyczące pomysłu na zbudowanie skryptu php, który będzie generował stronę html na podstawie danych wczytanych z bazy danych sql oraz przygotowanego szablonu.
Ja to widzę tak: - przygotuję plik php, który odczyta z bazy danych dane - odczytane dane chciałbym wprowadzić do szablonu, który przygotowałem w osobnym pliku html - w rezultacie nie muszę mieszać w jednym pliku php treści html oraz skryptów php - szablon html miałby jakieś frazy np "%imie%" które zastąpię wczytanym rekordem z bazy danych sql Nie wiem czy ta koncepcja jest dobra dlatego wszelkie uwagi są mile widziane. Ten post edytował karcheus 18.06.2016, 11:06:46 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Odkryłeś podstawy większości systemów (IMG:style_emoticons/default/smile.gif)
Zamiast tworzyć własny pseudo system szablonów wykorzystaj jakiś gotowy np. PHPTAL, Twig, Smarty czy inne. Do bazy danych połącz się najlepiej za pomocą PDO. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 18.06.2016 Ostrzeżenie: (0%) ![]() ![]() |
Nie chciałbym instalować żadnych dodatków. Pytam o najprostszą koncepcję przy użyciu języka PHP. W sumie chyba file_get_contents() i str_replace() powinno wystarczyć . Do PHP łącze się przez PDO
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Robienie czegoś tak prostego IMO mija się z celem. Po pierwsze dlatego że nie dodasz cache więc będzie to działać nawet wolniej. Po drugie zwykłe echo danych z bazy wystarczy.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Odkrywanie ameryki. No ale jak już bardzo chcesz zobaczyć jak to się robi, żeby miało ręce i nogi. Weź sobie jakieś frameworki i zobacz jak to w nich jest rozwiązane. Poczytaj dokumentację np Smarty i zobacz jak tam wstrzykuje się dane do szablonu.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 22 Dołączył: 11.04.2010 Skąd: Tarnów Ostrzeżenie: (0%) ![]() ![]() |
Tak jak pisał @viking nie ma najmniejszego sensu wyważać otwartych drzwi, są już gotowe rozwiązania takie tak Smarty, ktoś już wpadł na ten sam pomysł i go zrealizował (IMG:style_emoticons/default/wink.gif) Możesz zobaczyć, że użycie tego jest proste w dokumentacji.
Cytat Nie chciałbym instalować żadnych dodatków. A jaka to różnica czy dodasz swój własny skrypt, czy gotowy (IMG:style_emoticons/default/tongue.gif) Poza tym "instalujesz" tylko u siebie, a wrzucasz już wygenerowane szablony, chyba że chcesz zachować dynamikę niektórych zmiennych to wtedy zostawiasz echo. Cytat Pytam o najprostszą koncepcję przy użyciu języka PHP. Jeśli dalej nie jesteś przekonany (IMG:style_emoticons/default/wink.gif)
Zamianę wykonuje preg_replace_callback (min. PHP 5.3.0), wzorcem określasz w jaki sposób zmienne są umieszczane w szablonie, ja wzorowałem się na smarty, więc /\{\$(\w+)\/ to np. {$foo} (większość znaków ma specjalne znaczenie dlatego poprzedzone są \ ). Jeśli zastanawiałoby Cie użycie use, może przykład to wyjaśni. Do funkcji jako drugi parametr przekazujesz tablicę asocjacyjną, gdzie klucze są nazwami zmiennych. Jeśli chcesz pobierać dane z bazy do tworzenia szablonu, najlepiej jeśli nie będziesz tworzył każdego pola jako osobną zmienną i w rezultacie przechowywał jeden rekord z ogromną ilością pól tylko tworzysz pola name oraz value, każdy rekord to kolejna zmienna. Później wypełniasz tablicę $data[$row['name']] = $row['value']; Ten post edytował session 19.06.2016, 11:35:42 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 22:01 |