PHP 页面静态化/纯静态化/伪静态化
2021/6/18 17:56:44
本文主要是介绍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>
这篇关于PHP 页面静态化/纯静态化/伪静态化的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23怎么实现安卓+php 热更新方案?-icode9专业技术文章分享
- 2024-11-22PHP 中怎么实现判断多个值是否为空、null 或者为 false?-icode9专业技术文章分享
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享
- 2024-11-01开源 PHP 商城项目 CRMEB 安装和使用教程
- 2024-11-01用php和mysql写无限分类,有哪几种方法-icode9专业技术文章分享
- 2024-10-31php数据分表导出时部分数据无法导出什么原因-icode9专业技术文章分享
- 2024-10-30有经验的 PHP 开发者学习一门新的编程语言,有哪些推荐的有前景的语言-icode9专业技术文章分享
- 2024-10-21php 检测图片是否篡改过-icode9专业技术文章分享