小蚂蚁学习页面静态化(1)——静态化的原理

关于页面php文件执行阶段php

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

如何优化页面的响应时间数据库

  1. 动态页面静态化数组

  2. 优化数据库缓存

  3. 使用负载均衡服务器

  4. 使用缓存负载均衡

    页面静态化可以解决的问题    1.减小服务器脚本的计算时间    2.下降服务器的响应时间    可是静态化不适用于内容常常变换的页面。tcp


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';
	}
?>

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

相关文章
相关标签/搜索