caching van een cms
daniel ravenshorst
15/02/2012 12:26:48Hallo,
Ik ben op dit moment bezig met een project, en hier wordt gebruik gemaakt van een cms, het punt is dus ik heb 1 template: default.php en in default.php staan flags in de html code dus bijvoorbeeld: #PAGINA_TITEL# en #CONTENT# etc.. nu ben ik dus bezig om de website te cachen door middel van ob_start(); het probleem is echter dat er meerdere paginas zijn, maar je blijft als het ware default.php zien en dan is ok zo, het cms systeem regelt dit verder. maar nu zoek ik dus iets unieks in elke pagina, dat kan bijvoorbeeld #PAGINA_NAAM# zijn, alleen het probleem is dat de flags alleen worden herkend in html en niet in php, want als ik het nu in php ga zetten dan maakt hij wel een cache file in html maar dan krijg ik hem zo: #PAGINA_NAAM#.html als ik #PAGINA_NAAM# echo dan krijg ik wel gewoon te zien: Home of Contact etc.. hebben jullie mischien een idee hoe ik dit kan oplossen?
of kan het bijvoorbeeld als in een variabel aanmaak: $test = '#PAGINA_NAAM#'; en dan: if (echo $test == 'Home') {
$reqfilename = 'Home';
}
$cachefile = "../cache/".$reqfilename.".html";
$cachetime = 5 * 60; // 5 minutes
// Serve from the cache if it is younger than $cachetime
if (file_exists($cachefile) && (time() - $cachetime
< filemtime($cachefile)))
{
include($cachefile);
echo "<!-- Cached ".date('jS F Y H:i', filemtime($cachefile))."
-->n";
exit;
}
ob_start();
Mvg Daniel
Ik ben op dit moment bezig met een project, en hier wordt gebruik gemaakt van een cms, het punt is dus ik heb 1 template: default.php en in default.php staan flags in de html code dus bijvoorbeeld: #PAGINA_TITEL# en #CONTENT# etc.. nu ben ik dus bezig om de website te cachen door middel van ob_start(); het probleem is echter dat er meerdere paginas zijn, maar je blijft als het ware default.php zien en dan is ok zo, het cms systeem regelt dit verder. maar nu zoek ik dus iets unieks in elke pagina, dat kan bijvoorbeeld #PAGINA_NAAM# zijn, alleen het probleem is dat de flags alleen worden herkend in html en niet in php, want als ik het nu in php ga zetten dan maakt hij wel een cache file in html maar dan krijg ik hem zo: #PAGINA_NAAM#.html als ik #PAGINA_NAAM# echo dan krijg ik wel gewoon te zien: Home of Contact etc.. hebben jullie mischien een idee hoe ik dit kan oplossen?
of kan het bijvoorbeeld als in een variabel aanmaak: $test = '#PAGINA_NAAM#'; en dan: if (echo $test == 'Home') {
$reqfilename = 'Home';
}
$cachefile = "../cache/".$reqfilename.".html";
$cachetime = 5 * 60; // 5 minutes
// Serve from the cache if it is younger than $cachetime
if (file_exists($cachefile) && (time() - $cachetime
< filemtime($cachefile)))
{
include($cachefile);
echo "<!-- Cached ".date('jS F Y H:i', filemtime($cachefile))."
-->n";
exit;
}
ob_start();
Mvg Daniel
Gewijzigd op 15/02/2012 12:30:54 door Daniel ravenshorst
PHP hulp
17/11/2024 04:53:41Obelix Idefix
15/02/2012 12:29:20Daniel ravenshorst op 15/02/2012 12:26:48:
ob_start();
Volgens mij wordt het gebruik daarvan nagenoeg altijd afgeraden.