⊗ppPmSDFl 437 of 447 menu

Фајл-базирани систем у PHP

Имплементирајмо систем сајта који ће нам омогућити да креирамо фајл шаблона, коме ће се у зависности од URL-а додавати различит садржај.

Нека структура наше странице изгледа на следећи начин:

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

Дајмо сад, на место где треба да се убаци садржај, да ставимо неку нами измишљену команду за уметање, на пример овакву: {{ content }}. Изменимо шаблон нашег сајта:

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

Креирајмо сада директоријум view, у који ћемо смештати фајлове са садржајем. Директно у овај директоријум или у поддиректоријуме.

Први фајл ће бити овакав:

<div> content 1 </div>

Други фајл ће бити овакав:

<div> content 2 </div>

Трећи фајл ће бити овакав:

<div> content 3 </div>

Хајде сада да направимо да се на основу URL-а из адресне траке добави одговарајући фајл. У нашем случају, за URL /page1 то ће бити први фајл, за URL /dir/page2 - други, а за URL /dir/sub/page3 - трећи.

Приступимо имплементацији. За почетак у фајлу .htaccess направимо да сви захтевани адреси, осим фајлова ресурса, буду преусмерени на страницу index.php:

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

На страници index.php узмемо у променљиву захтевани URL:

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

Затим узмемо текст фајла са шаблоном:

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

Сада на основу URL-а узмемо из директоријума view одговарајући фајл са садржајем:

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

Заменимо у тексту шаблона нами измишљену команду са добијеним из фајла садржајем:

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

Испишимо у браузер фајл шаблона са убаченим садржајем:

<?php echo $layout; ?>

Спојимо све заједно и добијемо следећи код:

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

Имплементирајте описани фајл-базирани систем.

Српски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј