Server side includes
Server Side Includes (SSI) worden gemaakt om functies, headers, footers of elementen te hergebruiken op meerdere pagina´s.
Dit kan de ontwikkelaar een behoorlijke tijdswinst opleveren. Dit houdt in dat je een standaard kop of menu bestand kan maken welke je in al je webpagina’s kan toevoegen. Wanneer je dan bijvoorbeeld de kop van je site wilt veranderen hoef je maar één bestand te veranderen (en niet op elke pagina van je site).
Je kan de inhoud van een bestand aan een
PHP bestand toevoegen voordat deze op de server wordt gestart, met de include() of de require() functie. De twee functies zijn hetzelfde, behalve met hoe ze omgaan met fouten.
De include() functie geeft een waarschuwing (maar het script zal wel doorgaan met de uitvoer), De require() functie zal een fatale error geven (het script stopt na de fout).
De include() Functie
De include() functie neemt alle tekst in een bepaald bestand, en kopiëert dat in het bestand dat de include() functie gebruikt.
Stel je voor dat je een standaard kop bestand hebt, genaamd "header.php". Om dit kop bestand in een pagina op te nemen, kan je de include() functie, zo gebruiken:
voorbeeld:<html>
<body>
<?php include("header.php"); ?>
<h1>Welkom op mijn homepage</h1>
<p>Hier komt de overige inhoud van je pagina</p>
</body>
</html>
De require() Functie
De require() functie is identiek aan include() functie, alleen de fout afhandeling werkt anders.
De include() functie geeft een waarschuwing (maar het script gaat door met de uitvoer), terwijl de require() functie een fatale fout (fatal error) geeft (het script stopt met de uitvoer).
Als je een fout krijgt met de include() functie, kan je een foutmelding krijgen zoals hieronder:
voorbeeld:<html>
<body>
<?php
include("verkeerde_bestand.php");
echo "Hallo Wereld!";
?>
</body>
</html>
Fout melding:
voorbeeld:Warning: include(verkeerde_bestand.php) [function.include]:
failed to open stream:
No such file or directory in C:\home\website\test.php on line 5
Warning: include() [function.include]:
Failed opening 'verkeerde_bestand.php' for inclusion
(include_path='.;C:\php5\pear')
in C:\home\website\test.php on line 5
Hallo Wereld!
Merk op dat de echo opdracht nog wel wordt uitgevoerd!
Nu, hetzelfde voorbeeld met de require() functie.
voorbeeld:<html>
<body>
<?php require("verkeerde_bestand.php");
echo "Hallo Wereld!";
?>
</body>
</html>
Fout melding:
voorbeeld:Warning: require(verkeerde_bestand.php) [function.require]:
failed to open stream:
No such file or directory in C:\home\website\test.php on line 5
Fatal error: require() [function.require]:
Failed opening required 'verkeerde_bestand.php'
(include_path='.;C:\php5\pear')
in C:\home\website\test.php on line 5
De echo opdracht wordt niet uitgevoerd omdat de uitvoer van het script stopt na een fatale fout.
Het wordt aangeraden altijd de require() functie in plaats van de include() functie te gebruiken, omdat we eigenlijk niet willen dat een script doorgaat als er bestanden missen.