用php生成html / js网站的正确方法

时间:2012-01-05 12:19:08

标签: php html fwrite

我正在为网站制作一个部分,其中包含来自管理面板的可更改信息,但信息不会发生太大变化,因此该部分不应该是动态的。我打算在信息更改时生成html,但是要将所有html存储在一个带有""的变量中,它会变得混乱。所以也许有另一种方法可以做到这一点,所以它更易于维护?

2 个答案:

答案 0 :(得分:2)

缓存网站的方式首先点击缓存:

<?php
ob_start();
?>
<html>
...
Build your page dynamically as usual.
...
</html>
<?php

$site = ob_get_contents();
file_put_contents('webroot/site.html', $site);
ob_end_flush();

这将构建一个常规的动态HTML / PHP页面,并将该页面写入webroot中的.html文件,该文件将在下次直接命中。在管理界面中,只需在更新信息时删除此缓存版本即可。仅当.html版本通过.htaccess重写规则不存在时,才会调用上述脚本,例如:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)\.html$ $1.php [QSA,L]
</IfModule>

所以逻辑就像这样:

  • admin更新管理面板中保存在某处的内容
  • 用户访问网站,没有缓存的.html页面存在,重写调用上面的PHP脚本
  • 脚本创建.html文件并动态提供一次页面
  • 下一位用户访问该网站,获取缓存的.html版本
  • 管理员更新管理面板中的内容,删除缓存的网站
  • 冲洗,重复

答案 1 :(得分:0)

我会写一个“正确”的php网站,如果性能有问题,我会使用缓存代理。然后,如果无效缓存是一个问题,我会使用/开发一些工具,当有人在管理员处保存相同内容时,该工具可以使缓存无效。

强烈建议您使用框架。我通常使用Zend Framework,因为我非常了解它。

您也可以使用symfony或yii。搜索,比较,选择;)