Wiederkehrende Elemente

Hallo,

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.

Beste Grüße,
Steffen

SSI, PHP
per Server-Side Includes:

per PHP

<?php include (navi.php"); ?>

Gruß

Stefan

Hallo!

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.

Gruß Alex

Moin,

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.

Das nur so als Ergänzung.

Liebe Grüße,
-Efchen

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.

Beste Grüße,
Steffen

Moin,

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.

Grüße,
-Efchen

Hi,

<?php include (navi.php"); ?>

warum include für statische Inhalte? readfile() ist da sinnvoller.

Gruß
Ingo

Moin,

kannst Du das etwas ausformulieren?

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?

Danke,
-Efchen

Stimmt schon

Hi,

<?php include (navi.php"); ?>

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.

Gruß

Stefan

Moin,

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.

Gruß,
-Efchen

Hi,

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?

ebenfalls ja, wenn auch minimal.

Gruß
Ingo