2

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

是否有任何可用的 php 脚本,可以遍历网站并创建静态版本?

4

3 回答 3

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;

?>

这是一个简短而松散的示例,但它可能会帮助您了解如何制作适合您的应用程序的解决方案。

于 2012-05-16T08:40:45.650 回答
1

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

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

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

于 2012-05-16T08:44:44.897 回答
0

缓存,尤其是离线时,是由大多数现代浏览器自动完成的。由于 PHP 是一种服务器端语言,因此它仅限于在“在线”端产生影响。但是,如果您想提高性能,可以尝试通过 PHP自动缩小资源。

如果您非常想离线存储数据,您可以看到可以放入 cookie 的内容,但我并不认为这是一种传统方法。

编辑:

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

于 2012-05-16T08:38:43.263 回答