php 文件缓存函数

复制代码 代码如下:

  function createHashDir($sign)

  {

  $md5 = md5($sign);

  if(!is_dir(MB_CACHE)) mkdir(MB_CACHE);

  for($i=1;$i<=4;$i++)

  {

  $dir .= $md5{$i}.'/';

  if(!is_dir(MB_CACHE.$dir))

  {

  mkdir(MB_CACHE.$dir);

  }

  }

  return MB_CACHE.$dir;

  }

  function setCacheFile($data,$sign = 'a',$type = 'array',$id = '')

  {

  $cacheDir = $this -> createHashDir($sign);

  if(!empty($data))

  {

  $id = $id ? $id : $sign;

  $cacheFile = $cacheDir.$id.'.php';

  $content = $type == 'array' ? var_export($data,true) : $data;

  file_put_contents($cacheFile,'<?php $'.$sign.' = '.$content.'; ?>');

  }

  }

  function getCacheFile($sign = 'a',$id = '')

  {

  $cacheDir = $this -> createHashDir($sign);

  $id = $id ? $id : $sign;

  $cacheFile = $cacheDir.$id.'.php';

  if(is_file($cacheFile) && include_once($cacheFile))

  {

  return $$sign;

  }

  }

  function getCacheFilePath($sign = 'a',$id = '')

  {

  $cacheDir = $this -> createHashDir($sign);

  $id = $id ? $id : $sign;

  return $cacheDir.$id.'.php';

  }

  function delCacheFile($sign = 'a')

  {

  $cacheDir = $this -> createHashDir($sign);

  $id = $id ? $id : $sign;

  $cacheFile = $cacheDir.$id.'.php';

  $this -> del_file($cacheFile);

  }