php缓存—静态页面
来源:互联网 发布:简单的h5游戏源码 编辑:程序博客网 时间:2024/06/04 19:42
大家会问什么是缓存!能干什么!
其实缓存相当于内存。保存一段时间!
缓存就是我们执行东西时候不用在执行数据库了。直接执行我们的缓存就OK了
一般来说,缓存的目的是把数据放在一个地方让访问的更快点,毫无疑问,内存是最快的,但是,几百M的数据能往内存
放么?这不现实,当然,有的时候临时放如服务器缓存,
如ob_start()这个缓存页面开启的话在发送文件头之前页面内
容都被缓存在内存中,知道等页面输出自动清楚或者等待ob_get_contents的返回,
或者被ob_end_clean显示的清除,
这在静态页面的生成中能很好的利用,在模板中能得到很好的体现,
我的这篇文章深入的讨论了:谈PHP生成静态页面
,这是一种方式,但这是临时性的,不是解决我们问题的好方法.
可以这么说:缓存一般分为页面缓存和数据缓存。
ADODB缓存是数据缓存。
smarty是页面缓存。
adodb缓存是
<?php
include(./adodb/adodb.inc.php);
$ADODB_CACHE_DIR='tmp';
$db=NewADOConnect('mysql');
$db->connect('localhost','root','123456','mysql');
$sql="select * from user";
$db->cacheexecute(300,$sql);
?>
这样在TMP目录下生成了缓存!(缓存文件是序列化的数据。)
当下次在执行的时候,我们直接从缓存里面读取数据。
SMARTY缓存:
<?php
require('./smarty/Smarty.class.php');
$smarty = new Smarty;
$smarty->caching = true;
if(!$smarty->is_cached('index.tpl')) {
// No cache available, do variable assignments here.
$contents = get_database_contents();
$smarty->assign($contents);
}
$smarty->display('index.tpl');
?>
这个首先判断是否有这个缓存文件!没有直接链接数据库!
有的话!执行DISPLAY。就是读取缓存。
大家看到上面的2个例子!对缓存有很大的理解了吧!
现在说下怎么生成我们的HTML页面!
其实就是用FILE,MKDIE相关函数来做!
给大家一个函数。以前我写的啊!
function HTMLPage($path, $oldPage=null)
{
//载入全局变量
global $successList, $errorList, $db,$timer;
if(!empty($path))
{
//原路径为0,1,5,14,50 去掉0,1,代表的根目录,生成5,14,50
//不是根目录
if(strlen($path) > 3)
{
$path = substr($path, 4);
//将5,14,50转换成5/14/50
$path = str_replace(",", "/", $path);
//判断本月目录是否存在,不存在则创建
$dirName = date("Y-m");
$path = $path . "/" . $dirName;
}
else
{
$path = date("Y-m");;
}
//添加时使用物理路径
if(!is_dir(ARTICLE_REAL_PATH . $path))
{
if(!@mkdir(ARTICLE_REAL_PATH . $path))
{
exit("建立日期目录失败.");
}
}
//parseArticle.php需要一个文章信息的数组$parseArt;
$parseArt = $_POST;
$styleName= APP_STYLE;
//得到HTML字符串
$htmlStr = parseArticle($_POST, $styleName);
//使用原来的文件名
if($oldPage != null && $_POST['catPath'] == $_POST['oldPath'])
{
$fileName = $oldPage;
}
else
{
$prefix = date("Ymd-His");
//文件名格式为20041027-122101.htm
$fileName = ARTICLE_REAL_PATH . $path . "/" . $prefix . ".htm";
}
$fp = fopen($fileName, "w");
fwrite($fp, $htmlStr);
fclose($fp);
return $fileName;
}
else
{
$errorList[] = array("message" => "生成页面时发生错误.");
}
if(!empty($errorList)) //处理错误
{
$param["msgList"] = serialize($errorList);
forward("message.php", $param);
exit();
}
}
上例可能涉及到很多函数!有些是我定义的!大家主要看看大概思想。
呵呵。希望大家可以评论 啊!
- php缓存—静态页面
- PHP使用缓存生成静态页面
- php-ob缓存实现页面静态化
- php页面静态化 获取页面缓存生成HTML页面
- php页面静态化----伪静态化ob缓存使用
- php处理静态页面:页面设置缓存时间
- php提高访问效率的方法——页面静态化——缓存
- php生成静态html页面缓存技术原理+实例
- php生成html静态页面缓存技术原理【附实例】
- PHP文件缓存技术之页面静态化
- php的ob缓存详解及页面静态化运用
- php页面静态化—动态页面和静态页面
- PHP常见缓存技术分析 php缓存机制 数据缓存 页面缓存 内存缓存 时间触发缓存 内容触发缓存 静态缓存
- 缓存静态页面
- 缓存静态页面类
- 普通静态页面缓存
- ob静态页面缓存
- PHP页面静态化学习笔记之三:使用PHP缓存机制完成静态化
- 创新数据库技术 成就IOD愿景携DB2 25载创新 IBM推新“信息议程”
- 笪开源-----效益才是硬道理
- 什么是演绎法
- 道在何方
- 电脑快捷键大全
- php缓存—静态页面
- 第一时间响应客户
- 懂得放弃才会获得新生
- 关于最近研究的关键词提取keyword extraction做的笔记
- 疯狂的数据中心
- ASP.NET定义主题和外观
- 刚性捆绑,无线运营新模式
- 快速掌握一个语言最常用的50%
- 读“给计算机系学生的建议”有感