zvvq.cn
本教程操作环境:windows7系统、PHP8版、DELL G3电脑 zvvq好,好zvvq
什么是PHP静态化
PHP静态化的简单理解就是使网站生成页面以静态HTML的形式展现在访客面前,PHP静态化分纯静态化和伪静态化,两者的区别在于PHP生成静态页面的处理机制不同。 内容来自zvvq
纯静态化:是把PHP生成的动态页面保存成静态的html文件,用户访问该静态页面,而不是用户每一次访问都重新生成一张相同的网页
本文来自zvvq
“PHP免费”;
zvvq
优点就是减小服务器开销,
本文来自zvvq
如果细分纯静态,那么可以分为“局部纯静态”、“全部纯静态”:
局部静态化:是生成的静态文件中,有局部的数据还是通过ajax技术动态获取的;
完全静态化:即不存在动态获取数据的情况,所以内容都来自静态的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,别采集哟
一、加快页面打开浏览速度,静态页面无需连接数据库打开速度较动态页面有明显提高;
二、有利于搜索引擎优化SEO,Baidu、Google都会优先收录静态页面,不仅被收录的快还收录的全;
三、减轻服务器负担,浏览网页无需调用系统数据库;
四、网站更安全,HTML页面不会受php相关漏洞的影响; 观看一下大一点的网站基本全是静态页面,而且可以减少攻击,防sql注入。 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
那么这里我们根据这个地址读取一次这个详情页的内容,然后保存为静态页,下次有人访问这个商品详情页动态地址时,我们可以
直接把已生成好的对应静态内容文件输出出来。 内容来自samhan666
1 内容来自samhan
2 本文来自zvvq
3 zvvq.cn
4
5 内容来自samhan666
6 内容来自samhan666
7
8
内容来自samhan
9
10
本文来自zvvq
11
zvvq好,好zvvq
12
内容来自zvvq,别采集哟
13
本文来自zvvq
14
15
本文来自zvvq
16 内容来自zvvq
17
18 内容来自zvvq,别采集哟
19 zvvq
20 zvvq.cn
21
内容来自zvvq,别采集哟
22 zvvq好,好zvvq
23
本文来自zvvq
24 copyright zvvq
25
26
27
28
内容来自samhan
29 zvvq
30 内容来自samhan
31
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变量
file_put_contents ( $goods_statis_file , $content ); //写入内容到对应静态文件中 内容来自zvvq,别采集哟
ob_end_flush(); //输出商品详情页信息
zvvq.cn
}
} else { zvvq.cn
ob_start(); 内容来自zvvq,别采集哟
//从数据库读取数据,并赋值给相关变量 本文来自zvvq
//include ("xxx.html");//加载对应的商品详情页模板 zvvq.cn
$content = ob_get_contents(); //把详情页内容赋值给$content变量
file_put_contents ( $goods_statis_file , $content ); //写入内容到对应静态文件中
ob_end_flush(); //输出商品详情页信息
} 内容来自samhan666
?>
zvvq.cn
2、使用nosql从内存中读取内容(其实这个已经不算静态化了而是缓存);
copyright zvvq
以memcache为例: 内容来自zvvq
1 copyright zvvq
2
copyright zvvq
3 zvvq好,好zvvq
4
5
6 zvvq
7
8 内容来自zvvq,别采集哟
9 内容来自samhan666
10 zvvq
11 zvvq.cn
12 内容来自samhan
13
14 内容来自samhan666
15
本文来自zvvq
16 内容来自samhan
17
copyright zvvq
18
19
zvvq
20
21 内容来自samhan
22 zvvq.cn
23 内容来自zvvq,别采集哟
24
zvvq
25 copyright zvvq
26
本文来自zvvq
27
28 copyright zvvq
<?php copyright zvvq
$gid = $_GET [ &39;gid&39; ]+0; //商品id zvvq.cn
$goods_statis_content = "goods_content_" . $gid ; //对应键
$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 ;
} else {
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
}
?>
memcached是键值一一对应,key默认最大不能超过128个字节,value默认大小是1M,因此1M大小满足大多数网页大小的存储。 内容来自zvvq
推荐学习:《PHP视频教程》 内容来自samhan666
以上就是php静态化是什么意思的详细内容,更多请关注其它相关文章!