⊗ppPmSDFl 437 of 447 menu

Dateibasierte Engine in PHP

Wir implementieren eine Website-Engine, die es uns ermöglicht, eine Vorlagendatei zu erstellen, in die je nach URL verschiedener Inhalt eingebunden wird.

Nehmen wir an, die Struktur unserer Seite sieht folgendermaßen aus:

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

Lassen Sie uns an der Stelle, an der die Inhalte eingefügt werden sollen, einen von uns erdachten Befehl zur Einfügung platzieren, zum Beispiel so: {{ content }}. Ändern wir die Vorlage unserer Website:

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

Erstellen wir nun einen Ordner view, in den wir die Inhaltsdateien ablegen. Direkt in diesem Ordner oder in Unterordnern.

Die erste Datei wird so aussehen:

<div> content 1 </div>

Die zweite Datei wird so aussehen:

<div> content 2 </div>

Die dritte Datei wird so aussehen:

<div> content 3 </div>

Lassen Sie uns nun dafür sorgen, dass je nach URL aus der Adresszeile die entsprechende Datei geladen wird. In unserem Fall soll bei der URL /page1 die erste Datei geladen werden, bei der URL /dir/page2 - die zweite, und bei der URL /dir/sub/page3 - die dritte.

Beginnen wir mit der Implementierung. Zunächst sorgen wir in der Datei .htaccess dafür, dass alle angefragten Adressen, außer denen von Ressourcendateien, auf die Seite index.php weitergeleitet werden:

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

Auf der Seite index.php holen wir uns die angefragte URL in eine Variable:

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

Dann holen wir den Text der Vorlagendatei:

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

Holen wir nun basierend auf der URL die entsprechende Inhaltsdatei aus dem Ordner view:

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

Ersetzen wir in der Vorlage unseren erdachten Befehl durch den aus der Datei erhaltenen Inhalt:

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

Geben wir die Vorlagendatei mit dem eingefügten Inhalt im Browser aus:

<?php echo $layout; ?>

Fügen wir alles zusammen und erhalten folgenden Code:

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

Implementieren Sie die beschriebene dateibasierte Engine.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικά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
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen