This is a little code snippet that I use in almost every project that isn’t based on a popular CMS. Since its fairly expensive to hit the database on every page load, its a smart idea to cache the plain HTML markup of your page and serve that up. You can set how often the page cache is flushed out depending on how often you update your site’s content.
<?php
// define the path and name of cached file
$cachefile = 'cached-files/'.date('M-d-Y').'.php';
// define how long we want to keep the file in seconds. I set mine to 5 hours.
$cachetime = 18000;
// Check if the cached file is still fresh. If it is, serve it up and exit.
if (file_exists($cachefile) && time() - $cachetime < filemtime($cachefile)) {
include($cachefile);
exit;
}
// if there is either no file OR the file to too old, render the page and capture the HTML.
ob_start();
?>
<html>
output all your html here.
</html>
<?php
// We're done! Save the cached content to a file
$fp = fopen($cachefile, 'w');
fwrite($fp, ob_get_contents());
fclose($fp);
// finally send browser output
ob_end_flush();
?>
Have some others tricks? Leave a comment below!
Nice little snippet. Have put it to good use on some projects myself
Little optimization tip: there’s no need to use PHP’s parser (include) because cache file will always contain only static HTML. You should replace include() with readfile() or some other.
Pingback: iFerris « 10 super useful PHP snippets
Pingback: Simple PHP Page Caching Technique « Html « Php « Codes php – Share your php snippets
Pingback: 10 super useful PHP snippets | CatsWhoCode.com
Pingback: 10 super useful PHP snippets | Programming Blog
Pingback: PHP – sistem de cache - Php - dexblog.ro
Pingback: 7 个超级实用的 PHP 代码片段 | 芒果小站
Pingback: 10个超级有用的PHP代码小片段 | In Eyes
i love this one.
hope it work well, i am using an autocache class now but i don’t really like it.
its really great artilce,it works well
very good, i m going to use it, thank you
Hello, this is great
.