I just launched a new course on ES6! Use the code WESBOS for $10 off.

Strengthen your core JavaScript skills and master all that ES6 has to offer. Start Now →

Simple PHP Page Caching Technique

Mar 15 2011

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.

	// 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)) {
	// if there is either no file OR the file to too old, render the page and capture the HTML.
		output all your html here.
	// We're done! Save the cached content to a file
	$fp = fopen($cachefile, 'w');
	fwrite($fp, ob_get_contents());
	// finally send browser output

Have some others tricks? Leave a comment below!

This entry was posted in PHP and tagged , , , . Bookmark the permalink.

31 Responses to Simple PHP Page Caching Technique

  1. Darcy Clarke says:

    Nice little snippet. Have put it to good use on some projects myself 😉

  2. jomppa says:

    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.

  3. Pingback: iFerris « 10 super useful PHP snippets

  4. Pingback: Simple PHP Page Caching Technique « Html « Php « Codes php – Share your php snippets

  5. Pingback: 10 super useful PHP snippets | CatsWhoCode.com

  6. Pingback: 10 super useful PHP snippets | Programming Blog

  7. Pingback: PHP – sistem de cache - Php - dexblog.ro

  8. Pingback: 7 个超级实用的 PHP 代码片段 | 芒果小站

  9. Pingback: 10个超级有用的PHP代码小片段 | In Eyes

  10. Jack says:

    i love this one.
    hope it work well, i am using an autocache class now but i don’t really like it.

  11. Kithu says:

    its really great artilce,it works well

  12. very good, i m going to use it, thank you

  13. Adam Ziaja says:

    Hello, this is great :).

  14. Rafique says:

    Nice and really works. Thanks

    • sun512 says:

      Dear rafique
      Please guide me where to put these code for page caching as my site having axtra load on my page profile.php
      so where i have to put these cache .
      Please guide me

  15. sun512 says:

    nice update please clarify where to put these code

  16. Pingback: Come cachare pagine in PHP in maniera facile e veloce | Lanz Blog

  17. Online Tv says:

    very great code, thanks very much.

  18. Mp3Skull says:

    I am using your function on my Website,

    I have made changing in your script to only cache index.php file (don’t want to cache other parameters like index.php?url=MyUrl etc)..

    $typer = $_REQUEST[‘url’]; // Your GET (Query) sent ..

    if ($typer ==”){
    $cachefile = ‘cache/’.md5(‘index’).’.html’;
    // define how long we want to keep the file in seconds. I set mine to 2 hours.
    $cachetime = 7200;
    // Check if the cached file is still fresh. If it is, serve it up and exit.
    if (file_exists($cachefile) && time() – $cachetime

    Cache File


  19. Pingback: Super practical seven PHP code snippet to share | Script Home

  20. Laphaze says:

    Thanks you so much for this, appreciate it

  21. James says:

    Awesome – has suddenly made the server load on my site a lot lighter

  22. Karim says:

    This is great. Thanks so much for posting.

    Just had a quick question about the the pathname of the cache file created (date(‘M-d-Y’).’.php).

    If you are caching for a couple days, should the date in the filename be removed and maybe some static name be used? So the next day the cache file is used.

  23. Biswa says:

    Excellent code save lot’s of time in using other library on this.Great keep posting.

  24. Pingback: 7个超级实用的PHP代码片段分享 - Linux札记

  25. Alex says:

    Awesome and simple trick to minimize load on mysql 🙂

  26. Aydin says:

    My page size 12kb do not write. But page size 3.9kb successful writing files. How can I edit?

  27. Lazada says:

    Thanks for this tutorial, very helpfull.

  28. excellent points altogether, you just gained a new reader.
    What may you recommend in regards to your
    submit that you simply made some days ago?
    Any positive? http://detective-greece.gr/

  29. Rakib Hossen says:

    Hi this is awesome trick.. love it.

  30. aaa says:

    Thanks. very good.

Leave a Reply

Your email address will not be published. Required fields are marked *