⊗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 от адресната лента да се извлича съответният файл. В нашия случай при урл /page1 ще бъде първият файл, при урл /dir/page2 - вторият, и при урл /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ščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне