缓存/离线网站脚本

时间:2012-05-16 08:35:56

标签: php caching static

我创建了一个简单的cms来为我的客户构建简单的网站。 cms是数据库驱动的。我想制作网站的离线/缓存/静态副本,以提高性能。

是否有可用的PHP脚本遍历网站并创建静态版本?

3 个答案:

答案 0 :(得分:1)

自己制作一个并将其整合到简单的CMS中?

您可以使用很多可能性,例如MemcacheAPC以及应用程序生成的纯静态文件。

您的问题非常模糊,因为您没有提供编写缓存的任何实际问题。但除了我提到的两个第一个选项之外,可以使用file_get_contentsfile_put_contentsfilemtime

完成简单的静态文件缓存

示例(松散):

<?php


if( file_exists("/cache_dir/".$page_name) && (time() - filemtime("/cache_dir/".$page_name)) > 300)
{
  $contents = file_get_contens("/cache_dir/".$page_name);
}
else
{
  // getting the page contents
  ob_start();

  //output your page

  $contents = ob_get_clean();
  file_put_contens($contents, "/cache_dir/".$page_name);
}

echo $contents;

?>

这是一个简短且松散创建的示例,但它可以帮助您了解如何制作适合您应用的解决方案。

答案 1 :(得分:1)

您可以做很多事情来优化网站,大多数不会遍历网站并创建缓存,您可以编写自己的类,这很简单,或者您可以使用已编写的类:

http://www.jongales.com/blog/2009/02/18/simple-file-based-php-cache-class/

它的工作方式是有人访问实时页面时第一次创建缓存,如果缓存不存在,如果缓存确实存在则提供缓存版本

答案 2 :(得分:0)

缓存,特别是当它处于脱机状态时,是由大多数现代浏览器自动完成的。由于PHP是服务器端语言,因此仅限于“在线”端的效果。如果您想提高性能,可以通过PHP自动尝试minifying资源。

如果您非常想要离线存储数据,那么您可以看到适合cookie的内容,但我并不认为这是传统方法。

编辑:

如果你的意思是在服务器端制作静态页面,那么是的。使用正确的权限,您可以使用fopen()和related functions创建和编辑页面。