我们最近为一个销售儿童玩具的客户建立了一个PHP电子商务网站,自推出以来他带来了一个促销机构,他们建议为他的每个产品都提供静态HTML页面。他拥有超过2,5000种产品,因此手动构建每种产品并不是一个现实的选择。
PHP是否可以从数据库中读取每个产品并根据产品名称创建新文件并使用描述,图像和链接填充模板区域?如果有的话,有没有人建议我可以从哪里开始?
答案 0 :(得分:2)
我认为,最好的方法是使用use url rewrite,使它看起来像你没有静态页面。但是,如果您遇到数据库性能问题并因此想要缓存文件的静态副本,您还可以使用ob_函数来缓存PHP文件。比如说你只想每天读一次数据库并缓存文件,剩下的时间只返回静态缓存文件。
伪代码:
$cached_file_path = 'some path for cached file';
//would use filemtime($cached_file_path) and time() to determine if file was
//cached today. could also do it every 3 hours, or whatever
If file has not been cached today or cachefile does not exist, then
{
ob_start(); // starts recording the output in a buffer
//do all your database reads and echos
.....
$contents = ob_get_contents(); // gets all the output for you to write into a file
//save contents to file at $cached_file_path
....
ob_end_flush(); // returns the content to client
exit;
}
else
{
//just serve the cached file
include($cached_file_path);
exit;
}
显然你必须考虑参数,因为它们会影响缓存文件的名称。