我创建了一个简单的cms来为我的客户构建简单的网站。 cms是数据库驱动的。我想制作网站的离线/缓存/静态副本,以提高性能。
是否有可用的PHP脚本遍历网站并创建静态版本?
答案 0 :(得分:1)
自己制作一个并将其整合到简单的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;
?>
这是一个简短且松散创建的示例,但它可以帮助您了解如何制作适合您应用的解决方案。
答案 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创建和编辑页面。