关于页面php文件执行阶段php
语法分析——》编译——》运行html
如何优化页面的响应时间数据库
动态页面静态化数组
优化数据库缓存
使用负载均衡服务器
使用缓存负载均衡
页面静态化可以解决的问题 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'; } ?>
页面静态化的原理就是这样了。