wie kann ich immer wiederkehrende Elemente textsparend im HTML-Code unterbringen?
Ich hätte hier z.B. eine Menüzeile und einige andere Dinge, die in jeder meiner HTML-Seiten aufkreuzen. Ich würde diese Texte gern extern ablegen und dynamisch reinladen.
Ja Stefan hat recht. So könntest du es machen. Aber dann ist es kein reines HTML mehr. Daher musst du dann auch die Dateiendung anpassen. Ich würde <?PHP include(menue.inc) ?> vorschlagen. Dann musst du die Datei als .php abspeichern. Mit reinem HTML ist das (außer mit Frames, aber die Technologie ist veraltet und fehleranfällig) nicht möglich.
Ja Stefan hat recht. So könntest du es machen. Aber dann ist
es kein reines HTML mehr.
Das, was beim Browser ankommt, ist weiterhin reines HTML. Es wird jedoch serverseitig erzeugt.
Daher musst du dann auch die
Dateiendung anpassen.
Ja, das macht man so. Aber die Begründung gefällt mir nicht, weil man die Dateiendung nicht zwingend anpassen muss. Man muss dann aber dem Server mitteilen, dass er auch Dateien mit anderer Dateiendung vom jeweiligen Parser bearbeiten soll. Es kommt halt immer auf die Serverkonfiguration an.
Ich würde <?PHP include(menue.inc) ?>
vorschlagen. Dann musst du die Datei als .php abspeichern.
Mit reinem HTML ist das nicht möglich.
HTML hat auch nichts mit dynamischen Inhalten zu tun, HTML dient nur dazu, die Semantik des Inhalts festzulegen.
Prinzipiell mache ich sowas auch mit PHP, man kann es aber auch mit jeder anderen Programmiersprache machen, die man serverseitig zur Verfügung hat.
Herzlichen Dank an alle, besonders Stefan.
Die Sache mit SSI war mir noch von früher im Hinterkopf; ich hatte eben nur auf eine Client-seitige Verknüpfung gehofft.
hatte eben nur auf eine Client-seitige Verknüpfung gehofft.
Wie hätte das funktionieren sollen, wenn die verschiedenen Dateien auf Deinem Server liegen und der Browser aber nur die verknüpfte Datei anzeigen kann?
Die einzig andere Alternative ist ein Editor, der sowas kann. Da der dann aber statische Seiten erstellt, muss man für jede Änderung an einer zu includenden Datei jedes Mal die gesamten Seiten auf den Server packen.
Wenn Du meinst „für statische Inhalte“, ist das dann so, dass Files, die per include() eingebunden werden, auch vom PHP-Parser interpretiert werden und Files, die per readfile() eingebunden werden, eben nicht?
Oder gibts einen anderen Unterschied? Geschwindigkeit?
warum include für statische Inhalte? readfile() ist da
sinnvoller.
Der Unterschied zwischen include() und readfile() ist der, dass bei readfile() kein PHP-Code in der eingefügten Datei interpretiert wird, sondern der Dateiinhalt unverändert in das übergeordnete Dokument eingefügt wird. Das kann so mancherm Sicherheitsproblem vorbeugen.
Der Unterschied zwischen include() und readfile() ist der,
dass bei readfile() kein PHP-Code in der eingefügten Datei
interpretiert wird, sondern der Dateiinhalt unverändert in das
übergeordnete Dokument eingefügt wird. Das kann so mancherm
Sicherheitsproblem vorbeugen.
Das kann aber auch ein Sicherheitsproblem verursachen, wenn in der gelesenen Datei PHP-Code steht, uns insbesondere wenn da Verbindungsdaten, Passwörter oder sowas drin sind.
Wenn Du meinst „für statische Inhalte“, ist das dann so, dass
Files, die per include() eingebunden werden, auch vom
PHP-Parser interpretiert werden und Files, die per readfile()
eingebunden werden, eben nicht?
ja.
Oder gibts einen anderen Unterschied? Geschwindigkeit?