- <?php
-
- /*
- **************************************************
- Class: CacheToFile_Strategy.php
- **************************************************
- Author: Tsiavos Chris <jaames@freemail.gr>
- Date: October 2004
- **************************************************/
-
- /**
- *Includes the caching strategy interface
- */
- require_once("CachingStrategy_Interface.php");
-
- /**
- *Caches the generated image in a file
- */
- class CacheToFile_Strategy implements CachingStrategy_Interface {
-
- public function Initialize($CacheImageType,$CacheForMinutes,$Params) {
-
- $name=explode(".",basename($_SERVER["PHP_SELF"]));
- $CacheImage="./".$name[0]."."."cached";
-
- if (file_exists($CacheImage)) {
- $CacheTime=(time()-filemtime($CacheImage))/60;
- if ($CacheTime<$CacheForMinutes) {
- header("Content-type: image/".$CacheImageType);
- header("Cache-Control: no-cache");
- readfile($CacheImage);
- return 1;
- }
- }
- ob_start();
- }
-
- public function CacheImage() {
- $name=explode(".",basename($_SERVER["PHP_SELF"]));
- $CacheImage="./".$name[0].".cached";
-
- $hd=fopen($CacheImage,"w+");
- fwrite($hd,ob_get_contents());
- fclose($hd);
- }
-
- }
-
- ?>