⊗ppPmSDFl 437 of 447 menu

Filbaserad motor i PHP

Vi implementerar en webbplatsmotor som gör det möjligt för oss att skapa en mallfil, till vilken olika innehåll kommer att inkluderas beroende på URL:en.

Låt strukturen på vår sida se ut på följande sätt:

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

Låt oss på den plats där innehållet ska sättas in sätta in ett påhittat kommando för inmatning, till exempel så här: {{ content }}. Vi ändrar mallen för vår webbplats:

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

Låt oss nu skapa mappen view, där vi kommer att placera innehållsfiler. Antingen direkt i denna mapp eller i undermappar.

Den första filen kommer att se ut så här:

<div> content 1 </div>

Den andra filen kommer att se ut så här:

<div> content 2 </div>

Den tredje filen kommer att se ut så här:

<div> content 3 </div>

Låt oss nu se till att den motsvarande filen hämtas från mappen view baserat på URL:en i adressfältet. I vårt fall kommer den första filen att användas för URL:en /page1, den andra för URL:en /dir/page2, och den tredje för URL:en /dir/sub/page3.

Låt oss börja implementera. Först, i filen .htaccess, ska vi se till att alla begärda adresser, förutom resursfiler, omdirigeras till sidan index.php:

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

På sidan index.php hämtar vi den begärda URL:en till en variabel:

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

Sedan hämtar vi texten från mallfilen:

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

Nu hämtar vi den motsvarande innehållsfilen från mappen view baserat på URL:en:

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

Vi ersätter vårt påhittade kommando i malltexten med det hämtade innehållet från filen:

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

Vi skickar mallfilen med det inlagda innehållet till webbläsaren:

<?php echo $layout; ?>

Vi sätter ihop allt och får följande 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; ?>

Implementera den beskrivna filbaserade motorn.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa