Welcome to WebmasterWorld Guest from 54.204.162.36

Forum Moderators: coopster & jatar k

Basic cache using ob flush

   
1:05 am on Nov 22, 2009 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Can anyone tell me why this code snippet doesn't work? I have it at the end of my document after everything has been processed. I can get it to work using fopen, but thought I'd try to refine it:
<?php
$fileCache = "/home/site/www/cache/acache.html";
ob_flush();

if(is_writable($fileCache)) file_put_contents($fileCache, ob_get_flush());

?>

Any ideas? It just doesn't seem to be saving the file.

8:25 pm on Nov 29, 2009 (gmt 0)

WebmasterWorld Administrator coopster is a WebmasterWorld Top Contributor of All Time 10+ Year Member



Which version of PHP? file_put_contents() was made available in PHP 5 I believe it was. If you have an earlier version of PHP you will have to write your own function or keep using fopen and fwrite, ... which is likely what your own file_put_contents() function will do.
4:07 am on Nov 30, 2009 (gmt 0)

5+ Year Member



You're flushing the buffer before writing the file so you're writing an empty buffer.

Quote from the manual on ob_flush():

This function will send the contents of the output buffer (if any). If you want to further process the buffer's contents you have to call ob_get_contents() before ob_flush() as the buffer contents are discarded after ob_flush() is called.

 

Featured Threads

My Threads

Hot Threads This Week

Hot Threads This Month