• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Wiederkehrender Code

ampere82

Neues Mitglied
Hallo,

ich habe eine Frage für die ich in SelfHTML keine Antwort gefunden habe.

Ich habe einen HTML Abschnitt (Tag) das auf vielen Seiten mit identischem Inhalt vorhanden ist.
Kann ich diesen Teil in eine andere Datei auslagern und in meinen Seiten über einen HTML Tag referenzieren?

Oder muss ich an der Stelle den Umweg gehen das mehrfach vorkommende HTML in ein Javascript (document.write) auslagern und dieses in meinen Seiten immer aufrufen?

mfg Marco
 
Das ist mit reinen HTML-Mitteln nicht machbar. Dazu musst du entweder deinen JavaScript-Ansatz verfolgen, auf eine serverseitige Scriptsprache wie PHP setzen oder bei dir lokal auf dem Rechner eine Form von Preprocessing durchführen.

Der JavaScript-Ansatz hat natürlich den großen Nachteil, bei deaktiviertem JavaScript nicht zu funktionieren.

Zum Beispiel mit PHP wäre es im Prinzip in einer Zeile Code getan.

- PHP Tutorial - Include File

Ich persönlich finde die Möglichkeit, sowas lokal vor dem Hochladen zu „kompilieren“, spannend und vor allem sehr unterschätzt.

- htp: an HTML pre-processor
- htp on-line reference : Including

Das mag aber eine Frage des Workflows sein.
 
Super,

vielen Dank.
Die Variante mit pre-processor gefällt mir als c++ Programmierer sehr gut.
So bleibt meine eigentliche Seite statisch...

Vielen Dank noch mal für die schnelle qualifizierte Antwort!
 
Vlt. schaust Du dir in dem Zusammenhang auch mal ein Content-Management-System an. Davon gibt es viele. Deren Hauptaufgabe ist es die Inhaltspflege zu erleichtern. Aber die darin enthaltenen Templates erlauben es auch einen identischen Text auf beliebig vielen Seiten unterzubringen (z.B. das Menü selbst auch). Es gibt auch Desktop-CMS die quasi wie der o.g. pre-processor funktionieren und darüber rein statische Seite erzeugen und auf den Webserver kopieren.
 
Zum Beispiel mit PHP wäre es im Prinzip in einer Zeile Code getan.

- PHP Tutorial - Include File

Ich probiere gerade die von Dir aufgezählten Varianten durch.
Mit dem php habe ich allerdings ein Problem:

Ich habe den wiederkehrenden HTML Quelltext in eine Datei namens "mainmenu.php" kopiert und in meiner Aufrufenden Datei folgenden Quelltext integriert:

<!-- Gemeinsames Menue integrieren -->
<?php include("menu.php"); ?>

Beide Dateien (aufrufende Datei="home.html", gemeinsames Menü="mainmenu.php" liegen im gleichen Verzeichnis.
Leider sehe ich auf meiner Seite das Menü nicht, obwohl in diesem Verzeichnis PHP aktiv zu sein scheint.

Ich habe eine Datei phpinfo.php mit folgendem Ihnalt ins selbe Verzeichnis gelegt. Wenn ich diese Datei direkt über den Browser aufrufe, bekomme ich die erwartete Anzeige.
<?php
phpinfo();
?>

Was mache ich noch falsch?



Achja, wenn ich im Browser die Quelltextansicht starte, sehe ich an der Stelle wo ich meine Menü erwartet hätte folgenden Text:
<?php include("mainmenu.php"); ?>

Sieht soch so aus, als wäre die PHP Datei nicht verarbeitet worden...
 
Zuletzt bearbeitet:
Hehe, ich bin vielleicht ein Anfänger, aber nicht blöd ;-)

Also ich habe jetzt folgende probiert:
Dateiname home.php:
<?php
<html>
<head>
<title>Title</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>

geht leider alles nicht.

In den logfiles vom Server finde ich leider auch nix....

Kann mir vielleicht einer von Euch zwei Musterdateien schreiben?

In dem logfiles vom Apache finde ich auch nix :-(

Kann mir vielleicht mal einer zwei Musterdateien schreiben?

include "menu.php";

</body>
</html>
?>

und

Dateiname Home.html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Ristorante La Bocca</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php include("menu.php"); ?>

</body>
</html>

Meine Include-Datei im selben Verzeichnis:
Dateiname "menu.php":
<div id="navi" style="position:absolute; left:675px; top:240px; width:155px; height:120px; z-index:1">
<h1><Das ist ein Test</h1>
</div>
 
Haleluja jetzt gehts :-)

ich muss die Klammern weglassen:

Also nicht so wie hierPHP Tutorial - Include File beschrieben:
<?php include("menu.php"); ?>

Sondern so:
<?php include "menu.php"; ?>

Hab ich in einem anderen Tutorial gelesen.
Komisch oder?

by the way, ich hab PHP 5.2...

Vielen Dank nochmal für die Gedult von allen Beteiligten!
 
Zu Include mit und ohne Klammern haben wir sogar ein eigenes Topic:
http://www.html.de/php/21358-unterschied-include-mit-und-ohne-klammern-3.html

Allerdings schreibe ich es auch immer mit Klammern. Mir ist keine Situation bewusst in der es mal mit und mal ohne funktionieren würde. Auch bei PHP 5.2. funktioniert es bei mir mit Klammern. Ich tippe daher darauf, dass Du an irgendeiner Stelle noch irgendein anderes Problem hast und die Lösung nicht zwingend gefunden wurde.
 
Zurück
Oben