⊗ppPmSDFl 437 of 447 menu

Silnik na plikach w PHP

Zaimplementujemy silnik strony, który pozwoli nam utworzyć plik szablonu, do którego w zależności od URL będzie dołączany różny kontent.

Niech struktura naszej strony wygląda następująco:

<!DOCTYPE html> <html> <head> <title>title</title> </head> <body> <header> header </header> <main> content </main> <header> footer </header> </body> </html>

W miejscu, w którym ma nastąpić wstawienie kontentu, wstawmy wymyśloną przez nas komendę do wstawiania, na przykład taką: {{ content }}. Zmieńmy szablon naszej strony:

<!DOCTYPE html> <html> <head> <title>title</title> </head> <body> <header> header </header> <main> {{ content }} </main> <header> footer </header> </body> </html>

Stwórzmy teraz folder view, do którego będziemy umieszczać pliki z kontentem. Bezpośrednio w tym folderze lub w podfolderach.

Pierwszy plik będzie taki:

<div> content 1 </div>

Drugi plik będzie taki:

<div> content 2 </div>

Trzeci plik będzie taki:

<div> content 3 </div>

Zróbmy teraz tak, aby na podstawie URL z paska adresu był pobierany odpowiedni plik. W naszym przypadku dla adresu /page1 będzie to pierwszy plik, dla /dir/page2 - drugi, a dla /dir/sub/page3 - trzeci.

Przystąpmy do implementacji. Na początek w pliku .htaccess zróbmy tak, aby wszystkie żądane adresy, oprócz plików zasobów, były przekierowywane na stronę index.php:

RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} !\.(js|css|ico|jpg|png|gif)$ RewriteRule .+ index.php

Na stronie index.php pobierzmy do zmiennej żądany URL:

<?php $url = $_SERVER['REQUEST_URI']; ?>

Następnie pobierzmy tekst pliku z szablonem:

<?php $layout = file_get_contents('layout.php'); ?>

Teraz na podstawie URL pobierzmy z folderu view odpowiedni plik z kontentem:

<?php $content = file_get_contents('view' . $url . '.php'); ?>

Zamieńmy w tekście szablonu wymyśloną przez nas komendę na pobrany z pliku kontent:

<?php $layout = str_replace('{{ content }}', $content, $layout); ?>

Wyświetlmy w przeglądarce plik szablonu z podstawionym kontentem:

<?php echo $layout; ?>

Zbierzmy wszystko razem i otrzymamy następujący kod:

<?php $url = $_SERVER['REQUEST_URI']; $layout = file_get_contents('layout.php'); $content = file_get_contents('view' . $url . '.php'); $layout = str_replace('{{ content }}', $content, $layout); echo $layout; ?>

Zaimplementuj opisany silnik na plikach.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć