php如何实现缓存类代码

本文操作环境:windows10系统、PHP 7、thinkpad t480电脑。

使用说明:

实例化

$cache = new Cache();

设置缓存时间和缓存目录

$cache = new Cache(60, '/any_other_path/');

第一个参数是缓存秒数,第二个参数是缓存路径,根据需要配置。
默认情况下,缓存时间是 3600 秒,缓存目录是 cache/

读取缓存

$value = $cache->get('data_key');

写入缓存

$value = $cache->put('data_key', 'data_value');

完整实例:

$cache = new Cache();
   
//从缓存从读取键值 $key 的数据
$values = $cache->get($key);
   
//如果没有缓存数据
if ($values == false) {
//insert code here...
//写入键值 $key 的数据
$cache->put($key, $values);
} else {
//insert code here...
}

Cache.class.php

<?php
class Cache {
private $cache_path;//path for the cache
private $cache_expire;//seconds that the cache expires
   
//cache constructor, optional expiring time and cache path
public function Cache($exp_time=3600,$path="cache/"){
$this->cache_expire=$exp_time;
$this->cache_path=$path;
}
   
//returns the filename for the cache
private function fileName($key){
return $this->cache_path.md5($key);
}
   
//creates new cache files with the given data, $key== name of the cache, data the info/values to store
public function put($key, $data){
$values = serialize($data);
$filename = $this->fileName($key);
$file = fopen($filename, 'w');
if ($file){//able to create the file
fwrite($file, $values);
fclose($file);
}
else return false;
}
   
//returns cache for the given key
public function get($key){
$filename = $this->fileName($key);
if (!file_exists($filename) || !is_readable($filename)){//can't read the cache
return false;
}
if ( time() < (filemtime($filename) + $this->cache_expire) ) {//cache for the key not expired
$file = fopen($filename, "r");// read data file
if ($file){//able to open the file
$data = fread($file, filesize($filename));
fclose($file);
return unserialize($data);//return the values
}
else return false;
}
else return false;//was expired you need to create new
}
}
?>

--结束END--

本文标题: php如何实现缓存类代码

本文链接: https://www.lsjlt.com/news/393.html (转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢

  • php如何实现缓存类代码

    php实现缓存类代码的方法:【$cache = new Cache(); $values = $cache->get($key); if ($values == false) {$cache->put($key, $values)...】。
    阅读数:287 php 缓存类 代码
  • PHP如何实现记录代码运行时间封装类

    这篇文章给大家分享的是有关PHP如何实现记录代码运行时间封装类的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。示例代码class TimeCost{ private $cost = array(); priva
    阅读数:163 php
  • PHP/EclipsePHP如何实现代码自动提示

    这篇文章主要为大家展示了“PHP/EclipsePHP如何实现代码自动提示”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“PHP/EclipsePHP如何实现代码自动提示”这篇文章吧。但是即使是安
    阅读数:859 php
  • php如何实现数据库操作类的封装

    这篇文章主要为大家展示了“php如何实现数据库操作类的封装”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“php如何实现数据库操作类的封装”这篇文章吧。具体内容如下一、代码?php cla
    阅读数:334 php 数据库
  • php和html如何实现商务通跳转代码

    小编给大家分享一下php和html如何实现商务通跳转代码,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php商务通跳转代码写一段商务通跳转代码,要求:1)保证打开
    阅读数:434 php html
  • php如何实现限时

    php实现限时的方法:1、通过“set_time_limit(0)”让程序无限制执行下去;2、通过ini_set设置内存限制;3、设置每隔半小时运行即可。
    阅读数:860 php
  • php如何实现翻转

    php实现翻转的方法:1、使用strrev()函数实现英文字符串翻转;2、通过自定义的selfStrrev方法实现中文字符串翻转。
    阅读数:261 php
  • php如何实现禁止采集

    php禁止采集的方法:1、创建一个PHP示例文件;2、通过“$HTTP_REFERER = $_SERVER["HTTP_REFERER"];$HTTP_USER_AGENT =...”方法实现防采集即可。
    阅读数:692 php
  • php如何实现SSO登录

    php实现SSO登录的方法:1、用户进入登录页生成自定义SID,写入redis和cookie;2、在业务的BaseController的构造函数,写一个更新redis的操作;3、js构造跳转事件,然后服务端根据SID查看该用户存redis。
    阅读数:389 php SSO
  • php如何实现人脸对比

    php实现人脸对比的方法:1、创建一个PHP示例文件;2、查询人脸对比接口地址;3、请求人脸对比接口数据;4、解析数据并通过“function base64EncodeImage(){...}”和“function request(){...}”方法进行网络请求及图片对比即可。
    阅读数:719 人脸对比 php
  • PHP如何实现求阶乘

    小编给大家分享一下PHP如何实现求阶乘,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! function factorial ($x) {if ($x
    阅读数:694 php
  • php如何实现多个判断

    这篇文章主要介绍了php如何实现多个判断,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。多个判断$a = 1;//写法一if($a === 0){//}elseif($a
    阅读数:272 php
  • php如何实现上传限制

    这篇文章主要为大家展示了“php如何实现上传限制”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“php如何实现上传限制”这篇文章吧。上传限制在这个脚本中,我们增加了对文件上传的限制。用户只能上传
    阅读数:920 php
  • PHP如何实现HTTP验证

    这篇文章主要介绍了PHP如何实现HTTP验证,帮助大家更好的理解和学习使用PHP,感兴趣的朋友可以了解下
    阅读数:864 PHP HTTP验证 PHP http
  • MongoDB操作类PHP代码是怎样的

    MongoDB操作类PHP代码是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。?phpinclude_once dirname(dirname(dirname(_
    阅读数:757 mongodb php
  • php如何实现跨域请求

    php实现跨域请求的方法:可以通过设置【header('Access-Control-Allow-Origin:*');】来实现允许所有域名访问。
    阅读数:387 php 跨域请求
  • php如何实现数组转object

    php实现数组转object的方法:【$array=array('xxx'=>'xxx'); $vl=json_encode($array); $ob=json_decode($vl); print_r($ob);】。
    阅读数:480 php 数组 object
  • php如何实现头像上传

    php实现头像上传的方法:【<?php if($_FILES["file"]["error"]){echo $_FILES["file"]["error"];}else{if(($_FILES["file"]["type"]=="...】。
    阅读数:701 php 头像
  • php如何实现倒计时

    php实现倒计时的方法:1、通过date_default_timezone_set设置时区;2、配置每天的活动时间段;3、计算出服务器和客户端的时间差;4、通过“function GetRTime(){...}”方法实现倒计时即可。
    阅读数:616 php 倒计时
  • PHP如何实现令牌桶限流

    PHP实现令牌桶限流的方法:1、设有一个令牌桶,桶内存放令牌;2、每次访问从桶内取走一个令牌;3、根据实际情况,每隔一段时间放入若干个令牌或直接补满令牌桶即可。
    阅读数:493 PHP 令牌桶限流