php 读写缓存文件实例 var_export
static_caches缓存文件存放在ecshop/temp/static_caches下面
先来看缓存工作的2个主要函数,写缓存和读缓存。
该函数在ecshop/includes/lib_base.php
写缓存
<?php
/**
* 将结果写进缓存文件
*
* @params string $cache_name 缓存文件的名字
* @params string $caches 缓存的内容
*
* @return
*/
function write_static_cache($cache_name, $caches)
{
if ((DEBUG_MODE & 2) == 2)
{
return false;
}
//缓存的路径
$cache_file_path = ROOT_PATH . '/temp/static_caches/' . $cache_name . '.php';
//缓存内容$content
$content = "<?php\r\n";
$content .= "\$data = " . var_export($caches, true) . ";\r\n";
$content .= "?>";
//将内容写进缓存
file_put_contents($cache_file_path, $content, LOCK_EX);
}
/**
* 读结果缓存文件
*
* @params string $cache_name//缓存文件的名字
*
* @return array $data
*/
function read_static_cache($cache_name)
{
if ((DEBUG_MODE & 2) == 2)
{
return false;
}
//注意这里的静态变量用法
static $result = array();
//如果已经从缓存文件中读取了数据则直接返回结果
if (!emptyempty($result[$cache_name]))
{
return $result[$cache_name];
}
//缓存文件的路径
$cache_file_path = ROOT_PATH . '/temp/static_caches/' . $cache_name . '.php';
//如果缓存文件存在就读取缓存
if (file_exists($cache_file_path))
{
include_once($cache_file_path);
$result[$cache_name] = $data;
return $result[$cache_name];
}
else
{
return false;
}
}
举一个ecshop中具体应用的例子来说明
ecshop/inlucdes/lib_goods.php
function get_recommend_goods首页中展示的新品推荐、热卖商品、今日特价就是从这里来的
/**
* 获得推荐商品
*
* @access public
* @param string $type 推荐类型,可以是 best, new, hot
* @return array
*/
//代码我省略了一些,主要说明与缓存相关的代码
*/
function get_recommend_goods($type = '', $cats = '')
{
/* 省略的代码。。。。*/
/*读取缓存文件*/
$data = read_static_cache('recommend_goods');
if($data==false) //如果缓存文件不存在
{
/*从数据库中获取需要的数据*/
/*将从数据库中获取的数据写入到相应的缓存文件当中*/
write_static_cache('recommend_goods', $goods_data);
}else //如果缓存文件存在
{
/*直接使用缓存数据*/
$good_data=$data;
}
}//缓存结果在这里 <?php $data = array ( 'best' => array ( 0 => array ( 'goods_id' => '33', 'sort_order' => '0', ), 1 => array ( 'goods_id' => '19', 'sort_order' => '0', ), 2 => array ( 'goods_id' => '24', 'sort_order' => '0', ), 3 => array ( 'goods_id' => '20', 'sort_order' => '0', ), 4 => array ( 'goods_id' => '22', 'sort_order' => '0', ), 5 => array ( 'goods_id' => '8', 'sort_order' => '0', ), 6 => array ( 'goods_id' => '23', 'sort_order' => '0', ), 7 => array ( 'goods_id' => '9', 'sort_order' => '0', ), 8 => array ( 'goods_id' => '1', 'sort_order' => '0', ), 9 => array ( 'goods_id' => '17', 'sort_order' => '0', ), 10 => array ( 'goods_id' => '27', 'sort_order' => '0', ), 11 => array ( 'goods_id' => '30', 'sort_order' => '0', ), 12 => array ( 'goods_id' => '25', 'sort_order' => '0', ), 13 => array ( 'goods_id' => '29', 'sort_order' => '0', ), 14 => array ( 'goods_id' => '5', 'sort_order' => '0', ), ), 'new' => array ( 0 => array ( 'goods_id' => '33', 'sort_order' => '0', ), 1 => array ( 'goods_id' => '19', 'sort_order' => '0', ), 2 => array ( 'goods_id' => '32', 'sort_order' => '0', ), 3 => array ( 'goods_id' => '24', 'sort_order' => '0', ), 4 => array ( 'goods_id' => '20', 'sort_order' => '0', ), 5 => array ( 'goods_id' => '12', 'sort_order' => '0', ), 6 => array ( 'goods_id' => '22', 'sort_order' => '0', ), 7 => array ( 'goods_id' => '8', 'sort_order' => '0', ), 8 => array ( 'goods_id' => '23', 'sort_order' => '0', ), 9 => array ( 'goods_id' => '9', 'sort_order' => '0', ), 10 => array ( 'goods_id' => '1', 'sort_order' => '0', ), 11 => array ( 'goods_id' => '27', 'sort_order' => '0', ), 12 => array ( 'goods_id' => '5', 'sort_order' => '0', ), ), 'hot' => array ( 0 => array ( 'goods_id' => '33', 'sort_order' => '0', ), 1 => array ( 'goods_id' => '19', 'sort_order' => '0', ), 2 => array ( 'goods_id' => '32', 'sort_order' => '0', ), 3 => array ( 'goods_id' => '24', 'sort_order' => '0', ), 4 => array ( 'goods_id' => '20', 'sort_order' => '0', ), 5 => array ( 'goods_id' => '8', 'sort_order' => '0', ), 6 => array ( 'goods_id' => '9', 'sort_order' => '0', ), 7 => array ( 'goods_id' => '13', 'sort_order' => '0', ), 8 => array ( 'goods_id' => '10', 'sort_order' => '0', ), 9 => array ( 'goods_id' => '1', 'sort_order' => '0', ), 10 => array ( 'goods_id' => '14', 'sort_order' => '0', ), 11 => array ( 'goods_id' => '17', 'sort_order' => '0', ), 12 => array ( 'goods_id' => '27', 'sort_order' => '0', ), 13 => array ( 'goods_id' => '30', 'sort_order' => '0', ), 14 => array ( 'goods_id' => '25', 'sort_order' => '0', ), 15 => array ( 'goods_id' => '29', 'sort_order' => '0', ), 16 => array ( 'goods_id' => '28', 'sort_order' => '0', ), 17 => array ( 'goods_id' => '26', 'sort_order' => '0', ), ), 'brand' => array ( 33 => 'jk', 19 => '三星', 32 => '诺基亚', 24 => '联想', 20 => '三星', 12 => '摩托罗拉', 22 => '多普达', 8 => '飞利浦', 23 => '诺基亚', 9 => '诺基亚', 13 => '诺基亚', 10 => '索爱', 1 => 'LG', 14 => '诺基亚', 17 => '夏新', 5 => '索爱', ), );
文章链接:http://www.phprm.com/code/8b43751a7fdc57a0fd7dbba86dbff2fd.html
随便收藏,请保留本文地址!