PHP ver gevorderde |
|
Dit kan je doen met een template parser. Een voorbeeld hiervan is TemplateParser. Ik heb even een scriptje voor je geschreven waarvoor je geen hele parser nodig hebt.
<?php
// Een functie om de titel van je pagina mee aan te geven
function setTitle($sTitle)
{
// Ik kan begrijpen dat je de $GLOBALS variable niet kent,
// hieronder heb ik daarom een link geplaatst daar wordt deze variable uitgelegd.
// http://nl3.php.net/manual/en/reserved.variables.php#reserved.variables.globals
$GLOBALS['title'] = $sTitle;
}
// De functie die alle HTML van de pagina als argument mee krijgt,
// omdat we hem hebben meegegeven aan de ob_start functie.
// ob_start slaat de output (zoals HTML maar ook bijv. witruimtes) op in het geheugen,
// zo kun je er later nog wat op uitvoeren (zoals wij nu doen).
function handleOutput($sOutput)
{
// Vervangt {title} in het document.
// Als de titel niet is opgegeven dan moet hij alsnog worden vervangen.
// Voor het geval dat je de (conditie) ? true : false constructie niet kent
// staat hieronder een link met uitleg (halverwege de pagina).
// http://nl3.php.net/manual/en/language.expressions.php
// En wat betreft die preg_replace, daarvoor moet je even kijken op sitemasters
// daar zijn een aantal tutorials over te vinden.
return preg_replace('/(<title>.*){title}(.*<\/title>)/si', '\\1'.(isset($GLOBALS['title']) ? ' - '.$GLOBALS['title'] : '').'\\2', $sOutput);
}
ob_start('handleOutput');
?>
<html>
<head>
<title>Website{title}</title>
</head>
<body>
<div id="content">
<?php
// Het geinclude script van $_GET
setTitle('Contact formulier');
?>
</div>
</body>
</html>
<?php
// Weergeef de in het geheugen opgeslagen output
ob_end_flush();
?>
<?php // Een functie om de titel van je pagina mee aan te geven function setTitle($sTitle) { // Ik kan begrijpen dat je de $GLOBALS variable niet kent, // hieronder heb ik daarom een link geplaatst daar wordt deze variable uitgelegd. // http://nl3.php.net/manual/en/reserved.variables.php#reserved.variables.globals $GLOBALS['title'] = $sTitle; } // De functie die alle HTML van de pagina als argument mee krijgt, // omdat we hem hebben meegegeven aan de ob_start functie. // ob_start slaat de output (zoals HTML maar ook bijv. witruimtes) op in het geheugen, // zo kun je er later nog wat op uitvoeren (zoals wij nu doen). function handleOutput($sOutput) { // Vervangt {title} in het document. // Als de titel niet is opgegeven dan moet hij alsnog worden vervangen. // Voor het geval dat je de (conditie) ? true : false constructie niet kent // staat hieronder een link met uitleg (halverwege de pagina). // http://nl3.php.net/manual/en/language.expressions.php // En wat betreft die preg_replace, daarvoor moet je even kijken op sitemasters // daar zijn een aantal tutorials over te vinden. return preg_replace('/(<title>.*){title}(.*<\/title>)/si', '\\1'.(isset($GLOBALS['title']) ? ' - '.$GLOBALS['title'] : '').'\\2', $sOutput); } ?> <html> <head> <title>Website{title}</title> </head> <body> <div id="content"> <?php // Het geinclude script van $_GET setTitle('Contact formulier'); ?> </div> </body> </html> <?php // Weergeef de in het geheugen opgeslagen output ?>
|