Man muss bedenken, dass PHP im Grunde genommen eine serverseitige Sprache ist, die einen stinknormalen HTML-Code an den Browser schickt.
Mit Frames verhält es sich so:
1. Der Browser schickt eine Anfrage an den Server.
2. Der Server schickt einen HTML-Code zurück, der ein Frameset enthält.
3. Der Browser nimmt das Frameset und teilt das Fenster in, zum Beispiel, drei Teilfenster auf.
4. Für jedes Teilfenster schickt der Browser eine Anfrage an den Server.
5. Der Server schickt dann die drei HTML-Seiten an den Browser zurück.
6. Der Browser zeigt jede HTML-Seite im entsprechenden Teilfenster an.
Bei PHP aber verhält es sich so:
1. Der Browser schickt eine Anfrage an den Server.
2. Der Server erkennt, dass es sich bei der angeforderten Datei um eine PHP-Datei handelt, die er nicht direkt an den Browser sendet, sondern durch den PHP-Parser jagt.
3. Reiner HTML-Code wird an den Browser gleich weitergeleitet. Entdeckt der PHP-Parser PHP-Befehle in der Datei, werden diese ausgeführt. Meistens erzeugen die Befehle HTML-Code, der an den Browser geschickt wird.
3a. Entdeckt der Parser einen include()-Befehl, wird die genannte Datei gesucht und an der Stelle ebenfalls "geparst".
4. Der Browser bekommt vom Server also reinen HTML-Code.
Es gibt also keinen speziellen PHP-Befehl, der ein Frameset erzeugt.
Was man mit PHP aber machen kann, ist den Code für das Menü in eine einzelne Datei zu speichern. Zum Beispiel, menue.php könnte so aussehen:
PHP-Code:
<ul>
<li><a href="index.php">Startseite</a></li>
<li><a href="produkte.php">Produkte</a></li>
<li><a href="kontakt.php">Kontakt</a></li>
</ul>
index.php könnte dann so aussehen:
PHP-Code:
<html>
<head>
<title>rewDingens: Nützliches Zeug für die Haushalt</title>
</head>
<body>
<h1>Willkommen bei rewDingens!</h1>
<?php
include('menue.php');
?>
</body>
</html>
Was der Browser dann kriegt, sieht so aus:
PHP-Code:
<html>
<head>
<title>rewDingens: Nützliches Zeug für die Haushalt</title>
</head>
<body>
<h1>Willkommen bei rewDingens!</h1>
<ul>
<li><a href="index.php">Startseite</a></li>
<li><a href="produkte.php">Produkte</a></li>
<li><a href="kontakt.php">Kontakt</a></li>
</ul>
</body>
</html>
Da hast du zwar den Nachteil, dass immer eine ganze HTML-Seite inklusiv Menü heruntergeladen wird, aber noch den Vorteil, dass nur ein Dokument geändert werden muss, wenn du das Menü erweitern musst. Auch hat man den Vorteil, dass Suchmaschinen weniger Probleme mit Framelosen Sites haben.