从php保存HTML
假设我想使用php在我的网站上生成动态数据,但我不希望用户进入任何从php保存HTML,php,html,Php,Html,假设我想使用php在我的网站上生成动态数据,但我不希望用户进入任何.php页面 相反,我希望每晚运行一次php脚本,并保存一个.html文件,以便用户在浏览我的网站时只看到静态html 我描述的方式是,对于每个需要动态数据的页面,都有一个.html和一个.php。例如: newsAndInformation.html newsandformation.php 这是惯例吗?有这样的好教程吗?您可以在.htaccess文件中使用巧妙的mod_重写规则 RewriteCond %{REQUEST_
.php
页面
相反,我希望每晚运行一次php脚本,并保存一个.html
文件,以便用户在浏览我的网站时只看到静态html
我描述的方式是,对于每个需要动态数据的页面,都有一个.html和一个.php。例如:
- newsAndInformation.html
- newsandformation.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^Example/ index.php [L,NC,QSA]
此规则执行以下操作
<?php
ini_set('zlib.output_compression', 'On');
ob_start();
// Logic to create your content...
// use ob_get_contents() to get the response and save it
ob_end_flush();
?>
在第一次访问时,这会击中您的PHP页面。然后将文件保存到/Example/Test/index.html
,第二个请求将在不使用PHP的情况下提供静态页面。您可以在.htaccess文件中使用巧妙的mod_重写规则
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^Example/ index.php [L,NC,QSA]
此规则执行以下操作
<?php
ini_set('zlib.output_compression', 'On');
ob_start();
// Logic to create your content...
// use ob_get_contents() to get the response and save it
ob_end_flush();
?>
在第一次访问时,这会击中您的PHP页面。然后将文件保存到
/Example/Test/index.html
,第二个请求将在不使用PHP的情况下为静态页面提供服务。您可以创建一个简单的类来执行此操作
如果您有足够的数据需要更复杂的解决方案,您可以找到更广泛的缓存系统。您可以创建一个简单的类来实现这一点
如果您有足够的数据需要更复杂的解决方案,您可以找到更广泛的缓存系统。在
.htaccess
文件中添加以下内容
RewriteEngine on
RewriteRule ^(.*)\.html $1\.php
这将使
http://www.domain.com/myPage.html
真正指向http://www.domain.com/myPage.php
但是用户会看到.html
在.htaccess
文件中添加以下内容
RewriteEngine on
RewriteRule ^(.*)\.html $1\.php
这将使
http://www.domain.com/myPage.html
真正指向http://www.domain.com/myPage.php
但是用户看到.html
您可以编辑.htaccess
。这称为静态缓存。您可以使用ob_start和ob_get_内容来获取生成的代码并将其放入静态文件中。您可以使用htaccess检查是否存在静态文件,如果存在且小于xx天,则提供静态文件。。这只是一个简单的例子。这是因为你想缓存一些东西,还是仅仅因为你想让它看起来像一个html页面?因为通过url重写,你可以让url/anypage.html
指向anypage.php
,而没有人意识到这一点。我对缓存感兴趣。你可以编辑.htaccess
。这叫做静态缓存。您可以使用ob_start和ob_get_内容来获取生成的代码并将其放入静态文件中。您可以使用htaccess检查是否存在静态文件,如果存在且小于xx天,则提供静态文件。。这只是一个简单的例子。这是因为你想缓存一些东西,还是仅仅因为你想让它看起来像一个html页面?因为有了url重写,你可以让url/anypage.html
指向anypage.php
,而没有人意识到这一点。我对缓存感兴趣。+1很好!为了满足OP的刷新要求,您需要添加类似cron作业的内容,每天清理一次html文件。我通常在编辑页面时自动删除文件夹,因此只有在我实际进行了更改时,才会重新生成静态文件。对于需要真正动态的页面(即基于未来日期的自动发布),我使用一个较小的PHP文件来处理缓存,该文件检查缓存项的日期和时间。刚刚发现我的Yahoo Small Business hosting不允许我上传自己的.htaccess文件。呜呜呜呜。我很快就要换主机了,那我就试试这个。再次感谢+很好!为了满足OP的刷新要求,您需要添加类似cron作业的内容,每天清理一次html文件。我通常在编辑页面时自动删除文件夹,因此只有在我实际进行了更改时,才会重新生成静态文件。对于需要真正动态的页面(即基于未来日期的自动发布),我使用一个较小的PHP文件来处理缓存,该文件检查缓存项的日期和时间。刚刚发现我的Yahoo Small Business hosting不允许我上传自己的.htaccess文件。呜呜呜呜。我很快就要换主机了,那我就试试这个。再次感谢!