⊗ppPmSDFl 437 of 447 menu

Failidel põhinev mootor PHP-s

Rakendame veebisaidi mootori, mis võimaldab meil luua mallifaili, millesse sõltuvalt URL-ist ühendatakse erinev sisu.

Oletame, et meie lehe struktuur näeb välja järgmine:

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

Paneme kohale, kus peaks toimuma sisu sisestamine, mingi meie poolt väljamõeldud käsuga sisestamiseks, näiteks sellise: {{ content }}. Muudame oma saidi malli:

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

Loome nüüd kausta view, kuhu paigaldame sisufailid. Otse sellesse kausta või alamkaustadesse.

Esimene fail on selline:

<div> content 1 </div>

Teine fail on selline:

<div> content 2 </div>

Kolmas fail on selline:

<div> content 3 </div>

Teeme nüüd nii, et vastav URL aadressiribalt tõmbaks kaasa vastava faili. Meie puhul URL-i /page1 puhul esimene fail, URL-i /dir/page2 puhul - teine, ja URL-i /dir/sub/page3 puhul - kolmas.

Asume rakendamise kallale. Alustuseks failis .htaccess teeme nii, et kõik taotletud aadressid, välja arvatud ressursifailid, suunataks lehele index.php:

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

Lehel index.php saame muutujasse taotletud URL-i:

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

Seejärel saame malli failist teksti:

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

Nüüd saame URL-i põhjal kaustast view vastava sisufaili:

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

Asendame mallitekstis meie poolt väljamõeldud käsu failist saadud sisuga:

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

Väljastame brauserisse mallifaili asendatud malliga:

<?php echo $layout; ?>

Kogume kõik kokku ja saame järgmise koodi:

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

Rakendage kirjeldatud failidel põhinev mootor.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu