⊗ppPmSDFl 437 of 447 menu

Filbaseret motor i PHP

Vi implementerer en site-motor, som vil tillade os at oprette en skabelonfil, hvori forskelligt indhold vil blive inkluderet afhængigt af URL'en.

Lad strukturen af vores side se ud som følger:

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

Lad os på det sted, hvor indholdsindsættelsen skal foregå, indsætte en selvopfundet kommando til indsættelse, for eksempel sådan en her: {{ content }}. Lad os ændre vores sites skabelon:

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

Lad os nu oprette mappen view, hvor vi vil placere indholdsfilene. Enten direkte i denne mappe eller i undermapper.

Den første fil vil være sådan:

<div> content 1 </div>

Den anden fil vil være sådan:

<div> content 2 </div>

Den tredje fil vil være sådan:

<div> content 3 </div>

Lad os nu sørge for, at den relevante fil bliver hentet baseret på URL'en fra adresselinjen. I vores tilfælde vil fil /page1 være den første fil, URL'en /dir/page2 - den anden, og URL'en /dir/sub/page3 - den tredje.

Lad os gå i gang med implementeringen. Til at starte med, i filen .htaccess, lad os sørge for, at alle anmodede adresser, bortset fra ressourcefiler, omdirigeres til siden index.php:

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

På siden index.php henter vi den anmodede URL ind i en variabel:

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

Derefter henter vi tekst fra skabelonfilen:

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

Nu henter vi den relevante indholdsfil fra mappen view baseret på URL'en:

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

Lad os erstatte vores selvopfundne kommando i skabelonens tekst med det hentede indhold fra filen:

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

Lad os sende skabelonfilen med den indsatte indhold til browseren:

<?php echo $layout; ?>

Lad os samle alt og få følgende kode:

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

Implementer den beskrevne filbaserede motor.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικά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
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis