⊗ppPmSDFl 437 of 447 menu

Motor pe fișiere în PHP

Vom implementa un motor de site care ne va permite să creăm un fișier șablon, căruia în funcție de URL i se va conecta conținut variat.

Să presupunem că structura paginii noastre arată în felul următor:

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

Să inserăm în locul în care ar trebui să se facă inserarea conținutului o comandă inventată de noi pentru inserare, de exemplu astfel: {{ content }}. Să modificăm șablonul site-ului nostru:

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

Să creem acum directorul view, în care vom plasa fișierele de conținut. Direct în acest director sau în subdirectoare.

Primul fișier va fi astfel:

<div> content 1 </div>

Al doilea fișier va fi astfel:

<div> content 2 </div>

Al treilea fișier va fi astfel:

<div> content 3 </div>

Să facem acum astfel încât după URL din bara de adrese să fie încărcat fișierul corespunzător. În cazul nostru, la URL-ul /page1 va fi primul fișier, la URL-ul /dir/page2 - al doilea, și la URL-ul /dir/sub/page3 - al treilea.

Să începem implementarea. Pentru început, în fișierul .htaccess vom face astfel încât toate adresele cerute, cu excepția fișierelor de resurse, să fie redirecționate către pagina index.php:

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

Pe pagina index.php vom obține într-o variabilă URL-ul solicitat:

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

Apoi vom obține textul fișierului cu șablonul:

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

Acum după URL vom obține din directorul view fișierul de conținut corespunzător:

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

Vom înlocui în textul șablonului comanda noastră inventată cu conținutul obținut din fișier:

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

Vom afișa în browser fișierul șablon cu șablonul substituit:

<?php echo $layout; ?>

Vom aduna totul împreună și vom obține următorul cod:

<?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; ?>

Implementați motorul pe fișiere descris.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge