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

关于页面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';
	}
?>

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


转载于:https://my.oschina.net/woshixiaomayi/blog/514968

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值