小蚂蚁学习页面静态化(1)——静态化的原理
小蚂蚁学习页面静态化(1)——静态化的原理
嗜学如命的小蚂蚁 发表于2年前
小蚂蚁学习页面静态化(1)——静态化的原理
  • 发表于 2年前
  • 阅读 242
  • 收藏 4
  • 点赞 0
  • 评论 2

新睿云服务器60天免费使用,快来体验!>>>   

摘要: 通过一个简单的例子,了解一下页面静态化的原理是什么

关于页面php文件执行阶段

语法分析——》编译——》运行

如何优化页面的响应时间

  1. 动态页面静态化

  2. 优化数据库

  3. 使用负载均衡

  4. 使用缓存

    页面静态化能够解决的问题    1.减少服务器脚本的计算时间    2.降低服务器的响应时间    但是静态化不适用于内容经常变换的页面。


Buffer认知

Buffer就是一个缓冲区,一个内存地址空间,用于存储数据的区域

 

输出流程

内存-》php buffer-》tcp-》终端

将Php.ini中    output_buffering = on  Php5.3以上默认是开启的。

Ob_get_contents() 获取php缓冲区的文件

如果php.ini缓冲区没有开启,可以再脚本上部添加ob_start();开启

php如何实现页面纯静态化呢?

基本方式          

1.File_put_contents()函数

2.使用php内置缓存机制实现页面静态化 – output_buffering

操作缓冲区的函数ob_*

Ob函数

Ob_start           打开输出控制缓冲

Ob_get_contents           返回输出缓冲区内容

Ob_clean           清空(擦掉)缓冲区内容

Ob_get_clean                      得到当前缓冲区的内容并删除当前输出缓冲区

这四个是核心参数,静态化的核心思想就是,将保存到缓冲区的内容拿出来,保存在本地文件内。例如:

    准备两个文件,一个是模板文件template.php,一个实现静态化的脚本index.php。

<!doctype html>
<html>
	<head>
		<meta charset='utf-8' />
		<title>
			<title>这里是一个模板文件 template.php </title>
		</title>
	</head>
	<body>
		<ul>
			<?php foreach ($arr as $key => $value) { ?>
				<li><?php echo $value['title'] ?></li>
			<?php } ?>
		</ul>
	</body>
</html>

    下面开始是实现将上面的模板文件静态化的过程。

<?php
        //按照常规套路的话,这个数组应该是从数据库中拿到的,这里为了简便就直接准备一个二位数组
	$arr	=	array(
			0=>array('title'=>'这里是第一个标题'),
			1=>array('title'=>'这里是第二个标题'),
			2=>array('title'=>'这里是第三个标题')
		);
	
        //缓冲区必须要在输出之前开启
	ob_start();
	//把模板文件引入
	include_once('./template.php');
        //从缓冲区拿到文件,写到本地保存起来
	if(file_put_contents('./text.txt', ob_get_clean())){
		echo 'success';
	}else{
		echo 'error';
	}
?>

    页面静态化的原理就是这样了。


  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 132
博文 161
码字总数 100864
评论 (2)
crazymus
静态化还是非常有用的,降低了数据库的压力,也减少了php解释器的处理次数。
嗜学如命的小蚂蚁

引用来自“crazymus”的评论

静态化还是非常有用的,降低了数据库的压力,也减少了php解释器的处理次数。
恩恩,那可要多学习学习了,还望不吝赐教
×
嗜学如命的小蚂蚁
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: