Bei der Erstellung von Webseiten kommt man nicht umher auch ab und an etwas Content einzubinden. Via PHP löst man soetwas gerne mit der include()-Funktion. Was ja auch gar nicht so schlecht ist, wenn in den Dateien auch PHP-Funktionalität gebraucht wird. Wenn nun jedoch einfach nur HTML eingebunden werden soll, kann man dies mit folgender Funktion recht einfach und Übersichtlich gestalten.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php function showContent($fragment) { $base_url = 'inc/content/'; // Hier den Pfad zu den HTML-Datein $content = trim(file_get_contents($base_url . $fragment . '.html')); if(strlen($content) > 0) { $content = mb_convert_encoding($content, 'UTF-8', mb_detect_encoding($content, 'auto', true)); echo "\n\n" . '<!-- Beginn Fragment: ' . $fragment . ' -->' . "\n"; echo $content . "\n"; echo '<!-- Ende Fragment: ' . $fragment . ' -->' . "\n\n"; } else { echo '<!-- Fragment: ' . $fragment . ' could not loaded -->' . "\n"; } } ?> |
Und dann eigentlich nur noch in der index.php die Aufrufe an die richtige Stelle setzen.
1 2 3 | <?php showContent('navigation'); ?> |
Hier wird nun eine Datei mit dem Namen navigation.html im Ordner inc/content/ erwartet. Ist diese nicht vorhanden, so wird sie einfach nicht eingebunden. Es wird keine Fehlermeldung ausgegeben, wie es bei include(); der Fall ist.
Tipp:
Auf diese Art und Weise kann man auch HTML von anderen Servern einbinden. Dazu muss man nur die Funktion etwas umändern. Aber da immer auf das Copyright achten, daher werde ich hier nicht die nötigen Änderungen aufzeigen.



