cache.php content:
class CachingClass
{
var $cache_time = null;
var $file_name = null;
function __construct( $file_name, $cache_time = 0 )
{
$this->cache_time = ( $cache_time > 0 ) ? $cache_time : (300 * 60);
$this->file_name = $file_name;
}
function startBuffering( )
{
ob_start();
}
function stopBuffering( )
{
$fp = fopen($this->file_name, 'w');
fwrite($fp, ob_get_contents());
fclose($fp);
ob_end_flush();
}
function check()
{
return(file_exists($this->file_name) && (time() - $this->cache_time < filemtime($this->file_name)));
}
}
// https://www.etutorialspoint.com/index.php/43-simple-php-file-cache
In the cache.php file example: ob_start() - This function activates output buffering. ob_get_contents() - This function returns the contents of the output buffer. ob_end_flush() - Use this function to disable output buffering.
This is the main file, that we will call in the browser. In this file, first we include the 'cache.php', and then we check the already buffered data. If the condition is true, then display the buffered page on the browser, otherwise, start buffering and display the page.
index.php content:
// File to store cache
$cachefile = "cache/storecache.php";
// Include cache class
include_once 'cache.php';
$buffer_object = new CachingClass($cachefile);
// check already buffered data
if( $buffer_object->check() ) {
include_once $cachefile;
} else {
// start buffering
$buffer_object->startBuffering();
?>
<html>
<head>
<title>Cache this page</title>
</head>
<body>
<p>
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
Lorem Ipsum has been the industry's standard dummy text ever since the 1500s,
when an unknown printer took a galley of type and scrambled it to make a type specimen book.
It has survived not only five centuries, but also the leap into electronic typesetting,
remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset
sheets containing Lorem Ipsum passages, and more recently with desktop publishing software
like Aldus PageMaker including versions of Lorem Ipsum.
</p>
</body>
</html>
<?php
}
// stop buffering
$buffer_object->stopBuffering();