HTML Master Element auf mehreren Seiten einbinden?
Ich bin gerade an meinem Portfolio, welches ich selbst über HTML "code".
Die basic Skills reichen mir dazu eigentlich und den Rest bekomme ich von Codepen, aber eine Frage habe ich, welche ich nicht im Netz beantwortet bekommen habe. Oder zumindest weiß ich nicht genau, nach was ich googeln soll.
Ich habe auf jeder Seite dasselbe Menü.
Muss ich das nun auf jeder Seite händisch einpflegen oder kann ich irgendwie einen HTML-Schnipsel mittels PHP von einer anderen Seite auslesen.
Daher ich habe z.B. ein Stück Code welches auf jeder meiner .html Seiten zu finden ist. Ändere ich diesen Codeschnipsel, wird er automatisch auf allen eingebundenen Seiten ebenfalls geändert. So eine Art "Mastertemplate". Ich hoffe ihr versteht, was ich meine.
Und das am besten mit mehreren Objekten. Z.B. Header, Footer und noch andere Elemente, die dann auf die Unterseiten kommen werden.
Da eine komplette Antwort zu dem Thema vermutlich zu komplex ist, gerne auch einfach ein Tutorial verlinken.
Danke!
3 Antworten
An sich brauchst du nur den include-Ausdruck von PHP.
Ein Beispiel:
head.html:
<head>
<title>Some title</title>
<meta charset="utf-8">
</head>
index.php:
<!doctype html>
<?php include 'head.html' ?>
<body>
<p>Some text</p>
</body>
Das Argument für die Expression beinhaltet den Pfad zu der Datei, die eingebunden werden soll.
Innerhalb eines PHP-Skripts kannst du mehrere Textschnipsel aus anderen Dateien so einbauen. Du musst lediglich darauf achten, dass das zusammengefügte Ergebnis einem validen HTML-Dokument entspricht.
Ebenso könntest du eine Template Engine (wie z.B. Mustache, Plates oder Twig) einsetzen und hierbei das Layout in verschiedene Templates / Partials auftrennen. Vorteilhaft an diesem Weg ist, dass du deine Templates sogar mit Platzhaltern bestücken und anschließend dynamisch mit Werten befüllen kannst.
Muss ich das nun auf jeder Seite händisch einpflegen
Nein natürlich nicht
oder kann ich irgendwie einen HTML-Schnipsel mittels PHP von einer anderen Seite auslesen.
Nicht von einer anderen Seite einlesen sondern noch einfacher einfach einmal als PHP Datei erstellen und überein includen ohne extra einlesen
https://www.google.com/search?q=php+datei+auslesen
HTML-Code ist kein Problem.
vgl.
Du hast insofern natürlich recht, dass include etwas weniger Schreibarbeit bedeutet.
Doch wird anscheinend im Allgemeinen empfohlen, include nur für Seiten zu verwenden, die tatsächlich PHP-Code enthalten. (z. B. https://wiki.selfhtml.org/wiki/PHP/Tutorials/Templates/Dateien_mit_include_nachladen)
Achte aber darauf, dass die eingebundene Datei einen korrekt geformten HTML-Abschnitt und weiter nichts enthält, sonst sind womöglich alle Seiten, die ausgeliefert werden, unbrauchbar
Und warum so umständlich ?