我创建了一个简单的 cms 来为我的客户构建简单的网站。cms 是数据库驱动的。我想制作网站的离线/缓存/静态副本,以提高性能。
是否有任何可用的 php 脚本,可以遍历网站并创建静态版本?
自己制作一个并将其集成到您的简单 CMS 中?
您可以使用很多可能性,例如Memcache、APC以及应用程序生成的纯静态文件。
您的问题非常含糊,因为您在编写缓存时没有提供任何真正的问题。但是除了我提到的前两个选项之外,一个简单的静态文件缓存可以使用file_get_contents、file_put_contents和filemtime来完成
示例(松散):
<?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;
?>
这是一个简短而松散的示例,但它可能会帮助您了解如何制作适合您的应用程序的解决方案。
您可以做很多事情来优化站点,大多数不遍历站点并创建缓存,您可以编写自己的非常简单的类,或者您可以使用已经编写的类:
http://www.jongales.com/blog/2009/02/18/simple-file-based-php-cache-class/
它的工作方式是有人第一次访问实时页面时,如果缓存不存在,则创建缓存,如果缓存确实存在,则提供缓存版本