PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了PHP实现页面静态化、纯静态化及伪静态化大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

@H_772_4@

概念

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配置

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相关知识,请访问php教程

大佬总结

以上是大佬教程为你收集整理的PHP实现页面静态化、纯静态化及伪静态化全部内容,希望文章能够帮你解决PHP实现页面静态化、纯静态化及伪静态化所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: