Verwendung von PHP für Website-Menüs

tagged Linux, Tipps

Hier sind ein paar Tips für die Optimierung der eigenen Website.

Verwendung von PHP für Navigationsschaltflächen

Um eine einheitliche Darstellung der Naviagtionsmenüs zu gewährleisten, sollte in allen HTML-Dateien der gleiche Code an der entsprechenden Stelle stehen. Bei grösseren Websites mit vielen Seiten führt eine Umstellung des Menüs zur Änderung aller Dateien. Eleganter ist die Einbindung der Menüs über PHP. Sollte der Website-Anbieter kein PHP zur Verfügung stellen, kann man dies lokal erfolgen. Dabei wird ein lokaler Web-Server wie Lighttpd mit PHP-Support eingerichtet und danach per wget die Dateien als fertiges HTML heruntergeladen.

Der Code für das Einfügen von Menüs im gleichen Verzeichnis lautet z.B.

Dabei liest file_get_contents den Inhalt der Datei menu.html aus, in der sich lediglich der Code für das Menü aus. Über echo wird es dann beim Herunterladen in die HTML-Datei eingefügt (geparst).

Sollte es sich in einem übergeordneten Verzeichnis befinden, lautet es z.B.

Der Befehl str_replace ersetzt im vorgegebenen String das Zeichen ./ durch ./../, damit die Links auch bei Dateien im übergeordneten Verzeichnis funktionieren.

Hilfreich ist auch der Einsatz des Befehls

<meta name="date" content="<?php echo(date("c")); ?>" />

Damit wird das aktuelle Datum im korrekten Format in das Meta-Tag eingefügt.

Die heruntergeladenen Dateien haben noch die Endung .php und sollten noch umbenannt werden. Das ganze lässt sich mit einem Bash-Skript (download.sh) automatisieren:

'#!/bin/sh

for i in $*

do

wget -O $i localhost/$i

mv $i ${i%.*}.html

done'

Dem Skript werden die php-Dateien im Format [Verzeichnis/]Datei übergeben. Sie werden dann lokal in dem Verzeichnis (mit der gleichen Verzeichnisstruktur) gespeichert, aus dem es aufgerufen wird. Ich speichere mir die php-Dateien mit dem Befehl

'find *.php >> ./../html.txt' bzw.

'find /.php >> ./../html.txt'

(Aufruf aus dem Rootverzeichnis des Webservers) in die Textdatei html.txt. Dann rufe ich das Download-Skript auf und übergebe den Inhalt der Textdatei als Parameter.

'download.sh $(cat ./../html.txt)'

Die HTML-Dateien kann man dann auch auf Webserver hochladen, welche kein PHP unterstützen.