Q:

How does PHP store data in cache?

belongs to collection: PHP Programming Exercises

0

Simple PHP File Cache

How does PHP store data in cache

In this exercise, you will learn about a simple file caching process using PHP. Cache is important because it improves the efficiency of data retrieval. It is a reserved storage location that collects temporary data to help websites, browsers, and apps load faster.

All Answers

need an explanation for this answer? contact us directly to get an explanation for this answer

As we know, PHP is an interpreted programming language, which means the server has to execute the code each time a PHP page is requested. Instead of establishing a server connection every time we request the same page, we can store a copy of that page in an external file. Once this gets stored, we can call it from the stored location. This will reduce the server loading time and load the web page much faster.

In this example, we are using the Output Buffer to cache the requested file. For this, first create a folder 'cache' in the same directory where you will place the 'index.php' file. After that, create two files and copy and paste the following code.

 

1. cache.php

<?php
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)));
    }
}
?>

In the above 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.

2. index.php

<?php
// 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();
?>

need an explanation for this answer? contact us directly to get an explanation for this answer

total answers (1)

PHP Programming Exercises

This question belongs to these collections

Similar questions


need a help?


find thousands of online teachers now
How to detect a mobile device using PHP?... >>
<< How to generate QR Code in PHP...