dousaoxiancy199896
2018-02-26 21:26
浏览 53
已采纳

PHP缓存包括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?

图片转代码服务由CSDN问答提供 功能建议

我使用此代码缓存我的数据:

 &lt  ;?php 
 $ url = $ _SERVER [“SCRIPT_NAME”]; 
 $ break =爆炸('/',$ url); 
 $ file = $ break [count($ break) -  1]; 
  $ cachefile ='cached  - '。substr_replace($ file,“”, -  4)。'。php'; 
 $ cachetime = 3600; 
 
if(file_exists($ cachefile)&amp;&amp; time() -  $ cachetime&lt; filemtime($ cachefile)){
 include($ cachefile);  //包含缓存文件
} else {
 ob_start();  //开始输出缓冲
?&gt; 
 
&lt;?php 
 
 .... 
 
echo'&lt; div class =“profile-font2”&gt;',$ items,'&lt;  / div&gt;'; 
 
 $ fp = fopen($ cachefile,'w');  //打开缓存文件
 fwrite($ fp,ob_get_contents());  //创建新的缓存文件
 fclose($ fp);  //关闭缓存文件
 ob_end_flush();  //刷新输出缓冲
} 
?&gt; 
   
 
 

回声输出存储在文件中。 但我的风格有问题。 &lt; div class =“”&gt; 表类将被忽略。 所以我只是得到了裸体数据。 如何考虑我的风格?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • dongye9228 2018-02-26 21:37
    已采纳

    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.

    点赞 打赏 评论

相关推荐 更多相似问题