PHP实现页面静态化、纯静态化及伪静态化
发布:smiling 来源: PHP粉丝网 添加日期:2022-06-02 09:26:48 浏览: 评论:0
概念
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文件,放在网站目录下,无需重启服务器。
Tags: PHP页面静态化 PHP纯静态化
- 上一篇:php用逗号格式化数字的方法(代码示例)
- 下一篇:最后一页
相关文章
- ·PHP页面静态化两种实现方案(模板标签)(2015-04-10)
- ·关于php页面静态化原理与例子(2015-04-13)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)