⊗ppPmSDFl 437 of 447 menu

Failinis variklis PHP

Įgyvendinsime svetainės variklį, kuris leis mums sukurti šablono failą, į kurį, priklausomai nuo URL, bus prijungiamas skirtingas turinys.

Tegul mūsų puslapio struktūra atrodo taip:

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

Įterpkime į vietą, kur turi būti įstatytas turinys, kokią nors mūsų sugalvotą komandą įterpimui, pavyzdžiui, šią: {{ content }}. Pakeiskime mūsų svetainės šabloną:

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

Dabar sukurkime aplanką view, į kurį įdėsime turinio failus. Tiesiogiai šiame aplanke arba poaplankiuose.

Pirmasis failas bus toks:

<div> content 1 </div>

Antrasis failas bus toks:

<div> content 2 </div>

Trečiasis failas bus toks:

<div> content 3 </div>

Dabar padarykime taip, kad pagal URL iš adreso eilutės būtų traukiamas atitinkamas failas. Mūsų atveju pagal URL /page1 bus pirmasis failas, pagal URL /dir/page2 - antrasis, ir pagal URL /dir/sub/page3 - trečiasis.

Pradėkime įgyvendinimą. Pirmiausia faile .htaccess padarykime taip, kad visi užklausti adresai, išskyrus resursų failus, būtų nukreipiami į puslapį index.php:

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

Puslapyje index.php gausime į kintamąjį užklaustą URL:

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

Tada gausime šablono failo tekstą:

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

Dabar pagal URL gausime iš aplanko view atitinkamą turinio failą:

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

Pakeisime šablono tekste mūsų sugalvotą komandą į gautą iš failo turinį:

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

Atvaizduokime naršyklėje šablono failą su pakeistu šablonu:

<?php echo $layout; ?>

Sujunkime viską kartu ir gausime tokį 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; ?>

Įgyvendinkite aprašytą failinį variklį.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti