缓存 页面静态化 过滤器

Posted on Posted in thinkphp
Tips: 本文创建于2014年5月13日,已超过 2 年,内容或图片可能已经失效!

目录

页面缓存

缓存生成的HTML代码->静态化技术

[code lang="php"]
$cache_file = './jingtai.cache.html';
file_put_contents($cache_file,$output); // 写文件
file_get_contents($cache_file) // 获得文件
fileMTime(); //获得文件的修改时间
[/code]

保存服务器的相应输出
输出缓冲技术-output_buffering
php存在:输入缓存的功能。用于缓冲,所有的相应注意,所有的输出(echo ,var_dump, php 标记外)

[code lang="php"]
ob_start(); // 开始缓存,最开始位置
file_put_contents('./cache.html',ob_get_contents()); // 获得缓冲内容
// ob_get_clean(); // 获取内容并清空
// ob_end_clean(); // 清空并关闭
ob_flush(); // 冲刷出(送出)输出缓冲区中的内容
flush(); // 刷新默认输出缓冲
[/code]

php.ini
output_buffering = 4096 // 已开启, 大小,字节

服务器的结果是否会立即发送到浏览器端?
不算
流程有2个缓冲

[code lang="php"]
ob_end_clean(); // 清空并关闭缓冲区
echo str_repeat(' ',1024); // 与浏览器有关,浏览器接受的数据太小,不会显示
for($i=0;$i<=5;++$i){
echo $i, '<br />';
//ob_flush();
flush(); // 刷新默认缓冲区
sleep(1);
}
[/code]

页面静态化

smarty 页面静态化

$smarty->fetch(); //参数与display是一致的

smarty 过滤器

前置过滤器preFilter

后置postFilter

输出outputFilter

自定义调节器
truncate调节器,取决于php是否支持多字节操作而选择是否采用mb_substr完成字符串的处理

解决方案
开启扩展
php.ini
extension = php_mbstring.dll

通用,不完全依赖mbstring
自定义一个utf8字符集的字符串截取函数

自定义模版函数

smarty设置

将属性 force_compile设置为false

设计良好的缓存架构

(缓存入库)

» 转载请注明来源:呢喃 » 缓存 页面静态化 过滤器

Leave a Reply

Your email address will not be published. Required fields are marked *

two × 4 =