如何通过静态化处理将PHP页面转换为静态网页?

2026-04-06 15:371阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1244个文字,预计阅读时间需要5分钟。

如何通过静态化处理将PHP页面转换为静态网页?

PHP页面静态化有两种意义:

1.将PHP动态页面保存为静态的HTML文件,用户访问时直接读取HTML文件,减少服务器负担。

2.将动态页面生成静态网页,每次访问不再重新生成页面,提高访问速度。

php页面静态化有两种意思:1、把PHP动态页面保存成静态的html文件,用户访问该静态页面,而不是用户每一次访问都重新生成一张相同的网页,可以减小服务器开销;2、将动态页面的url地址转换成类似于静态页面的url地址,便于搜索引擎的收录。

本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑

PHP 页面静态化的概念

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

纯静态化:是把PHP生成的动态页面保存成静态的html文件,用户访问该静态页面,而不是用户每一次访问都重新生成一张相同的网页

优点就是减小服务器开销,

如果细分纯静态,那么可以分为“局部纯静态”、“全部纯静态”:

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

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

伪静态化:是指将动态页面的url地址转换成类似于静态页面的url地址的过程

伪静态化其实还是动态访问,其实质是动态生成数据,你访问的网址类似于"yourhost,com/index/post/12",是一个静态地址,该地址多见于博客地址,但伪静态化中,你访问的网址实际上经过服务器解析,还是会解析成类似于"yourhost,com/?c=index&a=post&id=12"的地址,所以称之为伪静态化

伪静态的优点:美观;便于搜索引擎收录

纯静态化的实现

利用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() )//输出到浏览器 }

如果后台数据存在更细,定时刷新不能及时更改静态页面,怎么办?所有引入了手动触发的功能

手动触发

  手动触发的大概样式就类似于优酷视频评论区,当有新评论时,会后一条屎黄屎黄的小提示框:“有新评论,点击更新”,也类似于app中的下滑刷新的机制,自己去寻找吧。。

如何通过静态化处理将PHP页面转换为静态网页?

除此之外还有Linux下的crontab定时扫描程序

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

局部静态化内容不做叙述

PHP伪静态

// 静态:yourhost.com/index.php/12/2.html // 动态:yourhost.com/index.php?type=12&id=2 $pathinfo = $_SERVER['PATH_INFO']; if( preg_match('/^\/(\d+)\/(\d+)/', $pathinfo,$path) ){ $type = $path[1]; $id = $path[2]; echo 'type=',$type,'&id=',$id;//获得type 和 id 进一步处理 }else{ //错误处理 echo "err"; }

Apache服务器rewrite配置

在yourhost.com/vidio/12.html时,相当于访问了yourhost.com/vidio.php?id=12

问题:配置完上面的内容后,又存在以下问题?如果项目目录下存在该静态页面时,到底是访问我们的静态页面还是访问我们伪静态的文件呢?

    经过测试我们发现,并不会访问静态页面,如果我们想访问我们的静态页面怎么办?

伪静态和静态页面冲突时解决办法:

#完整的配置规则如下 RewriteEngine on #添加以下两项,!-d 和 !-f 分别表示 目录 和 文件 #当访问的伪静态和相应的静态目录和文件冲突时,访问静态页面 RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f RewriteRule ^/index/([0-9]*).html$ /index.php?id=$1

推荐学习:《PHP视频教程》

以上就是php页面静态化是什么意思的详细内容,更多请关注自由互联其它相关文章!

本文共计1244个文字,预计阅读时间需要5分钟。

如何通过静态化处理将PHP页面转换为静态网页?

PHP页面静态化有两种意义:

1.将PHP动态页面保存为静态的HTML文件,用户访问时直接读取HTML文件,减少服务器负担。

2.将动态页面生成静态网页,每次访问不再重新生成页面,提高访问速度。

php页面静态化有两种意思:1、把PHP动态页面保存成静态的html文件,用户访问该静态页面,而不是用户每一次访问都重新生成一张相同的网页,可以减小服务器开销;2、将动态页面的url地址转换成类似于静态页面的url地址,便于搜索引擎的收录。

本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑

PHP 页面静态化的概念

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

纯静态化:是把PHP生成的动态页面保存成静态的html文件,用户访问该静态页面,而不是用户每一次访问都重新生成一张相同的网页

优点就是减小服务器开销,

如果细分纯静态,那么可以分为“局部纯静态”、“全部纯静态”:

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

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

伪静态化:是指将动态页面的url地址转换成类似于静态页面的url地址的过程

伪静态化其实还是动态访问,其实质是动态生成数据,你访问的网址类似于"yourhost,com/index/post/12",是一个静态地址,该地址多见于博客地址,但伪静态化中,你访问的网址实际上经过服务器解析,还是会解析成类似于"yourhost,com/?c=index&a=post&id=12"的地址,所以称之为伪静态化

伪静态的优点:美观;便于搜索引擎收录

纯静态化的实现

利用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() )//输出到浏览器 }

如果后台数据存在更细,定时刷新不能及时更改静态页面,怎么办?所有引入了手动触发的功能

手动触发

  手动触发的大概样式就类似于优酷视频评论区,当有新评论时,会后一条屎黄屎黄的小提示框:“有新评论,点击更新”,也类似于app中的下滑刷新的机制,自己去寻找吧。。

如何通过静态化处理将PHP页面转换为静态网页?

除此之外还有Linux下的crontab定时扫描程序

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

局部静态化内容不做叙述

PHP伪静态

// 静态:yourhost.com/index.php/12/2.html // 动态:yourhost.com/index.php?type=12&id=2 $pathinfo = $_SERVER['PATH_INFO']; if( preg_match('/^\/(\d+)\/(\d+)/', $pathinfo,$path) ){ $type = $path[1]; $id = $path[2]; echo 'type=',$type,'&id=',$id;//获得type 和 id 进一步处理 }else{ //错误处理 echo "err"; }

Apache服务器rewrite配置

在yourhost.com/vidio/12.html时,相当于访问了yourhost.com/vidio.php?id=12

问题:配置完上面的内容后,又存在以下问题?如果项目目录下存在该静态页面时,到底是访问我们的静态页面还是访问我们伪静态的文件呢?

    经过测试我们发现,并不会访问静态页面,如果我们想访问我们的静态页面怎么办?

伪静态和静态页面冲突时解决办法:

#完整的配置规则如下 RewriteEngine on #添加以下两项,!-d 和 !-f 分别表示 目录 和 文件 #当访问的伪静态和相应的静态目录和文件冲突时,访问静态页面 RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f RewriteRule ^/index/([0-9]*).html$ /index.php?id=$1

推荐学习:《PHP视频教程》

以上就是php页面静态化是什么意思的详细内容,更多请关注自由互联其它相关文章!