现在的位置: 首页 > 综合 > 正文

PHP如何实现页面静态化、纯静态化及伪静态化

2020年02月11日 综合 ⁄ 共 1607字 ⁄ 字号 评论关闭

  PHP静态是什么

  PHP静态化分为:纯静态化和伪静态化;

  纯静态化又分为:局部静态化 和 完全静态化

  纯静态化:是把PHP生成的动态页面保存成静态的html文件,用户访问该静态页面,而不是用户每一次访问都重新生成一张相同的网页,优点就是减小服务器开销,

  局部静态化:是生成的静态文件中,有局部的数据还是通过ajax技术动态获取的;

  完全静态化:即不存在动态获取数据的情况,所以内容都来自静态的html页面。

  伪静态化:Apache服务器rewrite配置。

  纯静态化的实现

  利用php内置的ob函数实现页面的静态化,大概步骤如下:

  < ?php ob_start();//开启缓存

  ?>

  < p>我是要生成的静态内容,也可以在该处链接数据库生成动态内容于此< /p>

  < ?php

  file_put_contents( 'index.html', ob_get_clean() );//把生成的静态内容保存到index.html文件,而不是输出到浏览器

  ?>

  触发系统生成纯静态化页面

  方法:页面添加缓存时间;手动触发

  页面添加缓存时间

  < ?php

  $file_name = 'index.html';

  if(file_exists( $file_name ) && filemtime( $file_name ) - time() < 10 ){//如果文件是存在并且最后修改时间小于设定时间 10s

  //filemtime( $file_name );//得到文件最后修改时间

  //time();//当前时间

  require_once( $file_name );//引入文件

  }else{

  ob_start( );

  ?>

  < p>我是要生成的静态内容< /p>

  < ?php

  file_put_contents( $file_name, ob_get_contents() )//输出到浏览器

  }

  如果后台数据存在更细,定时刷新

不能及时更改静态页面,怎么办?所有引入了手动触发的功能。

  Linux下的crontab定时扫描程序:

  */5****php/data/static/index.php

  PHP伪静态

  Apache服务器rewrite配置

  在httpd.conf文件中,找到:

  #注释:去掉前边的" # "开启rewrite服务,重启服务器生效。

  #LoadModule rewrite_module modules/mod_rewrite.so

  #注释:http-vhosts.conf文件是虚拟域名配置的文件,开启改文件可以配置虚拟域名,一般默认是开启的。

  #Include conf/extra/httpd-vhosts.conf

  rewrite伪静态配置

  < VirtualHost *:80>

  ServerAdmin webmaster@dummy-host.example.com

  DocumentRoot "c:/Apache24/docs/dummy-host.example.com"

  ServerName dummy-host.example.com

  ServerAlias www.dummy-host.example.com

  ErrorLog "logs/dummy-host.example.com-error.log"

  CustomLog "logs/dummy-host.example.com-access.log" common

  #配置规则如下所示

  RewriteEngine on

  RewriteRule ^/vidio/([0-9]*).html$ /vidio.php?id=$1

  < /VirtualHost>

  也可用.htacess文件,放在网站目录下,无需重启服务器。

  以上就是PHP实现页面静态化、纯静态化及伪静态化的详细内容,更多请关注学步园。

抱歉!评论已关闭.