zvvq技术分享网

php静态化是什么意思(php是静态还是动态的)

作者:zvvq博客网
导读php静态化就是使网站生成页面以静态html的形式展现在访客面前;php静态化分纯静态化和伪静态化,两者的区别在于php生成静态页面的处理机制不同。纯静态化是把php生成的动态页面保存

php静态化就是使网站生成页面以静态html的形式展现在访客面前;php静态化分纯静态化和伪静态化,两者的区别在于php生成静态页面的处理机制不同。纯静态化是把php生成的动态页面保存成静态的html文件,用户访问该静态页面,而不是用户每一次访问都重新生成一张相同的网页,可以减小服务器开销。伪静态化是指将动态页面的url地址转换成类似于静态页面的url地址,便于搜索引擎的收录。

zvvq.cn

本教程操作环境:windows7系统、PHP8版、DELL G3电脑 zvvq好,好zvvq

什么是PHP静态化

本文来自zvvq

PHP静态化的简单理解就是使网站生成页面以静态HTML的形式展现在访客面前,PHP静态化分纯静态化和伪静态化,两者的区别在于PHP生成静态页面的处理机制不同。 内容来自zvvq

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

本文来自zvvq

PHP免费”;

zvvq

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

本文来自zvvq

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

内容来自samhan666

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

内容来自samhan666

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

本文来自zvvq

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

copyright zvvq

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

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

zvvq好,好zvvq

PHP伪静态:利用Apache mod_rewrite实现URL重写的方法。

内容来自zvvq

为什么要让网页静态化

内容来自zvvq,别采集哟

一、加快页面打开浏览速度,静态页面无需连接数据库打开速度较动态页面有明显提高;

内容来自samhan666

二、有利于搜索引擎优化SEO,Baidu、Google都会优先收录静态页面,不仅被收录的快还收录的全;

本文来自zvvq

三、减轻服务器负担,浏览网页无需调用系统数据库;

zvvq好,好zvvq

四、网站更安全,HTML页面不会受php相关漏洞的影响; 观看一下大一点的网站基本全是静态页面,而且可以减少攻击,防sql注入。 zvvq

数据库出错时,不影响网站正常访问。

zvvq

生成html文章虽操作上麻烦些,程序上繁杂些,但为了更利于搜索,为了速度更快些,更安全,这些牺牲还是值得的。

zvvq.cn

PHP生成静态HTML页面的方法

本文来自zvvq

利用PHP模板生成静态页面

copyright zvvq

PHP模板实现静态化非常方便,比如安装和使用PHP Smarty实现网站静态化,也可以自己写一套模板解析规则,常见的可以模仿各类cms的模板规则。 内容来自samhan666

1、使用PHP文件读写功能与ob缓存机制生成静态页面 内容来自samhan666

比如某个商品的动态详情页地址是: http://xxx.com?goods.php?gid=112

内容来自samhan

那么这里我们根据这个地址读取一次这个详情页的内容,然后保存为静态页,下次有人访问这个商品详情页动态地址时,我们可以

内容来自zvvq

直接把已生成好的对应静态内容文件输出出来。 内容来自samhan666

1 内容来自samhan

2 本文来自zvvq

3 zvvq.cn

4

zvvq.cn

5 内容来自samhan666

6 内容来自samhan666

7

zvvq

8

内容来自samhan

9

内容来自zvvq

10

本文来自zvvq

11

zvvq好,好zvvq

12

内容来自zvvq,别采集哟

13

本文来自zvvq

14

内容来自zvvq,别采集哟

15

本文来自zvvq

16 内容来自zvvq

17

本文来自zvvq

18 内容来自zvvq,别采集哟

19 zvvq

20 zvvq.cn

21

内容来自zvvq,别采集哟

22 zvvq好,好zvvq

23

本文来自zvvq

24 copyright zvvq

25

zvvq

26

zvvq.cn

27

本文来自zvvq

28

内容来自samhan

29 zvvq

30 内容来自samhan

31

本文来自zvvq

32 内容来自zvvq,别采集哟

33 zvvq好,好zvvq

34

zvvq.cn

35 zvvq

<?php 内容来自zvvq,别采集哟

$gid = $_GET [ &39;gid&39; ]+0; //商品id zvvq.cn

$goods_statis_file = "goods_file_" . $gid . ".html" ; //对应静态页文件 内容来自samhan666

$expr = 36002410; //静态文件有效期,十天 本文来自zvvq

if ( file_exists ( $goods_statis_file )){

zvvq好,好zvvq

$file_ctime = filectime ( $goods_statis_file ); //文件创建时间

zvvq

if ( $file_ctime + $expr -->time()){ //如果没过期

本文来自zvvq

echo file_get_contents ( $goods_statis_file ); //输出静态文件内容 zvvq好,好zvvq

exit ; zvvq好,好zvvq

} else { //如果已过期 copyright zvvq

unlink( $goods_statis_file ); //删除过期的静态页文件 内容来自zvvq,别采集哟

ob_start(); zvvq.cn

//从数据库读取数据,并赋值给相关变量 zvvq

//include ("xxx.html");//加载对应的商品详情页模板 zvvq好,好zvvq

$content = ob_get_contents(); //把详情页内容赋值给$content变量

内容来自samhan666

file_put_contents ( $goods_statis_file , $content ); //写入内容到对应静态文件中 内容来自zvvq,别采集哟

ob_end_flush(); //输出商品详情页信息

zvvq.cn

}

本文来自zvvq

} else { zvvq.cn

ob_start(); 内容来自zvvq,别采集哟

//从数据库读取数据,并赋值给相关变量 本文来自zvvq

//include ("xxx.html");//加载对应的商品详情页模板 zvvq.cn

$content = ob_get_contents(); //把详情页内容赋值给$content变量

zvvq好,好zvvq

file_put_contents ( $goods_statis_file , $content ); //写入内容到对应静态文件中

内容来自zvvq,别采集哟

ob_end_flush(); //输出商品详情页信息

内容来自zvvq

} 内容来自samhan666

?>

zvvq.cn

2、使用nosql从内存中读取内容(其实这个已经不算静态化了而是缓存);

copyright zvvq

以memcache为例: 内容来自zvvq

1 copyright zvvq

2

copyright zvvq

3 zvvq好,好zvvq

4

本文来自zvvq

5

zvvq好,好zvvq

6 zvvq

7

zvvq.cn

8 内容来自zvvq,别采集哟

9 内容来自samhan666

10 zvvq

11 zvvq.cn

12 内容来自samhan

13

内容来自samhan666

14 内容来自samhan666

15

本文来自zvvq

16 内容来自samhan

17

copyright zvvq

18

内容来自samhan

19

zvvq

20

本文来自zvvq

21 内容来自samhan

22 zvvq.cn

23 内容来自zvvq,别采集哟

24

zvvq

25 copyright zvvq

26

本文来自zvvq

27

内容来自zvvq

28 copyright zvvq

<?php copyright zvvq

$gid = $_GET [ &39;gid&39; ]+0; //商品id zvvq.cn

$goods_statis_content = "goods_content_" . $gid ; //对应键

内容来自samhan

$expr = 36002410; //有效期,十天

zvvq

$mem = new Memcache; 内容来自zvvq,别采集哟

$mem --->connect( &39;memcache_host&39; , 11211);

zvvq.cn

$mem_goods_content = $mem ->get( $goods_statis_content ); copyright zvvq

if ( $mem_goods_content ){ 内容来自zvvq,别采集哟

echo $mem_goods_content ;

zvvq好,好zvvq

} else {

zvvq好,好zvvq

ob_start();

zvvq好,好zvvq

//从数据库读取数据,并赋值给相关变量

内容来自zvvq,别采集哟

//include ("xxx.html");//加载对应的商品详情页模板

本文来自zvvq

$content = ob_get_contents(); //把详情页内容赋值给$content变量 copyright zvvq

$mem ->add( $goods_statis_content , $content , false, $expr );

zvvq

ob_end_flush(); //输出商品详情页信息 内容来自samhan

}

本文来自zvvq

?>

zvvq

memcached是键值一一对应,key默认最大不能超过128个字节,value默认大小是1M,因此1M大小满足大多数网页大小的存储。 内容来自zvvq

推荐学习:《PHP视频教程内容来自samhan666

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

本文来自zvvq