如何仿写thinkphp的S方法?

代码:

<?php
$info=S("name","lizhaoyao");
$name=S("name");
var_dump($name);
function S($key,$value='',$cache_time=86400)
{
    $md=md5($key);//按照md5散列形式进行加密命名
    $dir="./Cache/";//定义缓存存放路径文件夹
    if (!is_dir($dir))
    {
        mkdir($dir,'0777');//首先检测文件夹是否存在
    }
    $file_name=$dir.$md;
    if($value==='')
    {
        //要取值出来
        if(file_exists($file_name))
        {
            $data=unserialize(file_get_contents($file_name));
            if($data['deadline']<time())
            {
                @unlink($file_name);
                return false;//过期了 删掉缓存
            }
            return $data['value'];
        }else
        {
            return false;
        }
    }else
    {
        //如果赋值为空 则将该缓存删除
        if($value===null)
        {
           return unlink($file_name);
        }
        //要存进去
        $data['value']=$value;
        $data['deadline']=time()+$cache_time;
        return file_put_contents($file_name,serialize($data));
    }
}
?>

截图:

 

posted @ 2015-04-08 11:49  李照耀  阅读(288)  评论(0编辑  收藏  举报