Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从php保存HTML_Php_Html - Fatal编程技术网

从php保存HTML

从php保存HTML,php,html,Php,Html,假设我想使用php在我的网站上生成动态数据,但我不希望用户进入任何.php页面 相反,我希望每晚运行一次php脚本,并保存一个.html文件,以便用户在浏览我的网站时只看到静态html 我描述的方式是,对于每个需要动态数据的页面,都有一个.html和一个.php。例如: newsAndInformation.html newsandformation.php 这是惯例吗?有这样的好教程吗?您可以在.htaccess文件中使用巧妙的mod_重写规则 RewriteCond %{REQUEST_

假设我想使用php在我的网站上生成动态数据,但我不希望用户进入任何
.php
页面

相反,我希望每晚运行一次php脚本,并保存一个
.html
文件,以便用户在浏览我的网站时只看到静态html

我描述的方式是,对于每个需要动态数据的页面,都有一个.html和一个.php。例如:

  • newsAndInformation.html
  • newsandformation.php
这是惯例吗?有这样的好教程吗?

您可以在.htaccess文件中使用巧妙的mod_重写规则

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^Example/ index.php [L,NC,QSA]
此规则执行以下操作

  • 检查请求的URL的文件是否不存在

  • 检查请求的URL的目录是否不存在

  • 如果是-显示静态文件/目录(目录需要index.html文件)

  • 如果没有-重定向到您的PHP文件,该文件可以运行,然后为下一个请求保存适当的文件

  • 您的PHP文件将给出响应:

    <?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]
    
    此规则执行以下操作

  • 检查请求的URL的文件是否不存在

  • 检查请求的URL的目录是否不存在

  • 如果是-显示静态文件/目录(目录需要index.html文件)

  • 如果没有-重定向到您的PHP文件,该文件可以运行,然后为下一个请求保存适当的文件

  • 您的PHP文件将给出响应:

    <?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文件。呜呜呜呜。我很快就要换主机了,那我就试试这个。再次感谢!