我是一名有用的助手,以下是您需要翻译的内容:
但是当我在PHP文件末尾打印ob_get_contents()时,它是空的!实际上创建的缓存文件也是空的!那么当我使用Smarty时,如何在PHP中缓存文件?我知道我可以使用Smarty缓存,但由于某些原因它对我不起作用。
此外,请告诉我有关APC缓存的信息。如何使用它?在我的情况下值得使用吗?我认为它只用于缓存数据库查询,我阅读了PHP手册,但我什么也没懂 :)谢谢。
我正在使用Smarty和我的PHP代码,并且希望缓存一些网站页面,因此我使用了以下代码:
// TOP of script
ob_start(); // start the output buffer
$cachefile ="cache/cachefile.html";
// normal PHP script
$smarty->display('somefile.tpl.html') ;
$fp = fopen($cachefile, 'w'); // open the cache file for writing
fwrite($fp, ob_get_contents()); // save the contents of output buffer to the file
fclose($fp); // close the file
ob_end_flush(); // Send the output to the browser
但是当我在PHP文件末尾打印ob_get_contents()时,它是空的!实际上创建的缓存文件也是空的!那么当我使用Smarty时,如何在PHP中缓存文件?我知道我可以使用Smarty缓存,但由于某些原因它对我不起作用。
此外,请告诉我有关APC缓存的信息。如何使用它?在我的情况下值得使用吗?我认为它只用于缓存数据库查询,我阅读了PHP手册,但我什么也没懂 :)谢谢。
index.tpl
版本。例如,在news.php
中,您将调用$smarty->display('index.tpl','news|' . $article_id);
对于帮助页面,您可以使用一个缓存ID为'help|' . $topic
等。(使用管道字符来构造缓存ID允许您有选择地清除缓存,例如一次性清除所有新闻文章。) - searlea