Kelster
Kelster

Reputation: 39

PHP caching including css

Im using this code for caching my data:

<?php
$url = $_SERVER["SCRIPT_NAME"];
$break = Explode('/', $url);
$file = $break[count($break) - 1];
$cachefile = 'cached-'.substr_replace($file ,"",-4).'.php';
$cachetime = 3600;

if (file_exists($cachefile) && time() - $cachetime < filemtime($cachefile)) {
  include($cachefile); //include cache file
}else{
  ob_start(); //start output buffering
?>

<?php

....

echo '<div class="profile-font2">', $items, '</div>';

   $fp = fopen($cachefile, 'w'); //open cache file
  fwrite($fp, ob_get_contents()); //create new cache file
  fclose($fp); //close cache file
  ob_end_flush(); //flush output buffered
}
?>

The echo output get stored in the file. But I´ve a problem with my styles. The <div class=""> or table class gets ignored. So I just get the naked data. How is it possible that my styles get considered?

Upvotes: 0

Views: 238

Answers (1)

dognose
dognose

Reputation: 20899

echo '<div class="profile-font2">' - here you are just creating a div - it has a class-attribute, yes - but since you don't include any stylesheet - that means the class-attribute is worthless.

So, it depends on what you want to achive:

  • do you want to render the (cached) content according to the latest stylesheet?
  • do you want to cache the style-sheet as well?

For the first example, it would be quite easy, cause you just need to include the actual style-sheet before printing the cached content, i.e.:

<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>
<body>
<?include("cachedContent.extension")?>
</body>

The second example would be more tricky, cause you need to "align" all the cached style-sheets with their respective HTML-File. I don't think that's trivial and hence don't have an answer for that case.

Upvotes: 1

Related Questions