Seiten einbinden

in PHP · Autor: Sebastian Fuchs

In PHP gibt es eine praktischen Funktion, mit der wir einfach Inhalte von anderen Seiten in eine andere einbinden können. Beispielsweise haben wir unser Seitendesign, und in den Bereich wo der Inhalt ist soll jetzt ein Gästebuch eingebunden werden. Natürlich gibt es iFrames, doch diese sind inzwischen einfach zu veraltet.
Der Befehl zum Einbinden von Seiten in PHP lautet include() bzw. require(), wobei der Unterschied beider Funktionen nur in der Fehlerbehandlung besteht. Die Handhabung ist eigentlich ziemlich simpel, da wir innerhalb des PHP Bereiches als Funktionsparameter lediglich den Namen der einzubindenden Datei angeben müssen.
<html>

<head>
  <title>Seiten einbinden</title>
</head>

<body>
<?php

include('datei.php');

?>
</body>

</html>
In meinem Beispiel wird die Datei "datei.php" in das aktuelle Dokument eingebunden.
In die Datei könnten wir jetzt beispielsweise einen Text schreiben, der dann in dem <body>-Bereich erscheint. Unsere "datei.php" braucht deshalb keinen <html>, <head> oder <body>-Tag mehr.
Da wir bei dieser Variante aber noch für jedes include() eine neue Datei, die den jeweiligen Inhalt einbindet, anlegen müssten, gibt es noch eine dynamische Variante. Diese ist sehr empfehlenswert, wenn man auf seiner Seite zum Beispiel immer nur den Content-Bereich, also den jeweiligen Inhalt, neu laden möchte. Die Navigation, der Header usw. bleiben dann immer erhalten und müssen nicht immer wieder mit angegeben werden. Das spart viel Arbeit beim Verwalten der Seiten, da Änderungen an diesen Teilen direkt auf allen Seiten angewendet werden.
<html>

<head>
  <title>dynamisch Includes</title>
</head>

<body>
<?php

if(isset($_GET['page'])
{
  $page = $_GET['page'];

  // Unterseite
  if(file_exists($page.'.php'))
  {
    include($page.'.php');
  }
  // Fehler wenn Seite nicht existiert
  else
  {
    echo 'Die gewünschte Seite konnte nicht gefunden werden!';
  }
}
// Standardseite
else
{
  include('startseite.php');
}

?>
</body>

</html>
Beim ersten if wird überprüft, ob eine einzubindende Seite übergeben wurde. Wenn keine Seite übergeben wurde, soll eine Standardseite eingebunden werden, wie z.B. die Startseite (siehe else-Teil).
Beim nächsten if wird die Anweisung festgelegt, die ausgeführt werden soll, wenn die angegebene Datei mit der Endung ".php" vorhanden ist. Existiert die Seite auf dem Server, wird sie eingebunden. Da hier die Endung ".php" angefügt wird, müssen wir bei unseren Links keine Endung mit angeben. Dazu aber gleich noch mehr.
Kommen wir jetzt zum nächsten else-Teil. Hier kann eine Fehlermeldung definiert werden, falls ein Link angeklickt wurde, die Datei aber nicht existiert. Auf diese Weise hat man eine individuelle Fehlermeldung, wenn eine nicht existierende Seite aufgerufen wird.
Schließlich kommen wir noch zu der Schreibweise der dazu passenden Links. Diese ist recht simpel:
<a href="index.php?page=datei">Link</a>
index.php ist die Indexseite, in der der PHP Code von eben steht. Falls die Datei anders heißt, müssen die Links entsprechend geändert werden.
Danach folgt ein ?page=, denn in unserem Code haben wir die Variable $_GET['page'] verwendet. Wenn die Variable anders genannt wird, muss dies in den Links auch angepasst werden.
Anschließend kommt noch der Dateiname, nur ohne Endung (im Beispiel wäre das Originaldokument "datei.php"). Denn die Endung ".php" wird in unserem PHP Code automatisch angefügt. So wird der Link nicht zu lang und unübersichtlich.
Der Inhalt dieser Seite erscheint dann an der Stelle wo unser PHP Code im Dokument positioniert ist. Das sollte natürlich der Content-Bereich unserer Seite sein.
Einziger Nachteil bei dieser Variante ist, dass alle include-Dateien als ".php" abgespeichert werden müssen. Das ist aber nicht weiter schlimm, da auch reine HTML Dateien als PHP Dateien abgespeichert werden können.

· zurück zu "PHP Tutorials"

Lesezeichen

Diese Seite zu Mister Wong hinzufügen Diese Seite zu del.icio.us hinzufügen Diese Seite bei YiGG hinzufügen Diese Seite bei LinkARENA hinzufügen Diese Seite zu alltagz hinzufügen Diese Seite bei iGoogle hinzufügen