PHP自定义文件缓存实现

这篇具有很好参考价值的文章主要介绍了PHP自定义文件缓存实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文件缓存:可以将PHP脚本的执行结果缓存到文件中。当一个PHP脚本被请求时,先查看是否存在缓存文件,如果存在且未过期,则直接读取缓存文件内容返回给客户端,而无需执行脚本

1、文件缓存写法一,每个文件缓存一个数据,缺点文件可能太多 

function getFileCache($key, $value = null, $expiry = 3600) {
    $cacheDir = "D:\\phpstudy_pro\\WWW\\cache\\";
    $cacheFile = $cacheDir . md5($key) . '.txt';

    if (file_exists($cacheFile) && (time() - filemtime($cacheFile) < $expiry)) {
        return file_get_contents($cacheFile);
    }

    if ($value !== null) {
        // 将$value参数的值保存到缓存文件中
        file_put_contents($cacheFile, $value);
        return $value;
    }

    // 保存数据到缓存文件中
    file_put_contents($cacheFile, $value);

    return $value;
}

// 缓存具体的值
$cacheValue = 'example_value';
 getFileCache('example_key', $cacheValue);

// 使用示例
$data = getFileCache('example_key');
echo $data;

 2、文件缓存写法二,一个文件缓存所有数据,缺点可能文件太大读写变慢

function getFileCache($key, $value = null, $expiry = 3600) {
    $cacheDir = "D:\\phpstudy_pro\\WWW\\cache\\";
    $cacheFile = $cacheDir .  'cache.txt';
    $file=false;
    if(file_exists($cacheFile)){
        $file= file_get_contents($cacheFile);
    }
    if($file){
         $data=unserialize($file);
    }else{
        $data=[];
    }
    if($value){
        $data[$key]=["data"=>$value,'expiry'=>time()+$expiry];

        file_put_contents($cacheFile, serialize($data));
        return true;
    }else{
        if(isset($data[$key])&&$data[$key]['expiry']>time()){

             return  $data[$key]['data'];
        }
        return null;
    }
}
// 缓存具体的值
$cacheValue = 'example_value';
getFileCache('example_key', $cacheValue);
$cacheValue = 'example_value2';
getFileCache('example_key2', $cacheValue);
// 使用示例
$data = getFileCache('example_key');
var_dump($data);
$data2 = getFileCache('example_key2');
var_dump($data2);

PHP自定义文件缓存实现,php,乱七八糟,后端,开发语言,php,笔记文章来源地址https://www.toymoban.com/news/detail-736400.html

到了这里,关于PHP自定义文件缓存实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PHP最简单自定义自己的框架实现像TP链式sql语句(六)

    1、实现效果,链式sql语句封装 order、where、group、limit等封装    2、数据表构造函数入参,ModelBase.php 3、ModelBase.php定义order、where、group、limit等参数以及默认值 4、封装select、find、delete等方法动态参数ModelBase.php 5、indexCrl.php调用链式sql 6、完整的ModelBase.php文件

    2024年02月13日
    浏览(46)
  • PHP 对PDF文件实现数字签名

    PHP通过TCPDF库对生成的PDF文件进行数字签名。 效果如下: 这个是因为签名证书不在可信任证书列表中。 目录 准备数字证书 1.申请数字证书 2.自签名证书 安装TCPDF 证书签名 设置证书路径 设置证书信息 设置文档签名 设置签名外观 图像签名外观 空签名外观 完整代码 总结 可以

    2024年02月11日
    浏览(37)
  • PHP毕业设计课题选题(16)基于web网页网站PHP文件共享网站系统设计与实现

     博主介绍 :《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、PPT、论文模版

    2024年02月08日
    浏览(49)
  • 透析PHP缓存问题

    缓存已经成了项目中是必不可少的一部分,它是提高性能最好的方式,例如减少网络I/O、减少磁盘I/O 等,使项目加载速度变的更快。 缓存可以是CPU缓存、内存缓存、硬盘缓存,不同的缓存查询速度也不一样(CPU缓存 内存缓存 硬盘缓存)。 1、代码级缓存 1)数据缓存:是指数

    2024年01月24日
    浏览(31)
  • PHP实现读取指定目录下的所有文件

    在php中读取指定目录下的文件主要用到了opendir和readdir函数 1:语法 2:参数说明 参数 描述 path 必需。规定要打开的目录路径。 context 可选。规定目录句柄的环境。context 是可修改目录流的行为的一套选项。 3:返回值 成功则返回目录句柄资源。失败则返回 FALSE。如果路径不是

    2024年02月05日
    浏览(44)
  • PHP调用java class 类实现文件签名

    起因:对接某平台API接口,发送的文件需要做 SM3 签名,对方平台是java写的,只有java加密示例,照着java的加密算法翻译为PHP版本,在编码转换上始终有些差异。没办法,只能想办法使用他们的java方式。 Demo.java文件:

    2024年02月09日
    浏览(52)
  • 站长工具之PHP单文件实现IP归属地批量查询

    站长/程序员工具之PHP单程序文件实现IP归属地批量查询 支持提取IP便于直接粘贴日志,去重防止重复查询浪费计算资源 按出现次数排序方便分析该IP行为。查询速度极快。

    2024年01月16日
    浏览(62)
  • Android实现与PHP后端的交互(数据传输,文件传输)(超详细/附源码)

    为方便大家浏览,源码先行奉上 github源码链接 https://github.com/Recycle1/Android-connect-PHP csdn源码链接 https://download.csdn.net/download/weixin_52263647/87751491 在Android开发中,经常涉及与服务器端交互的过程,在现在的APP制作中,经常利用互联网通信,从云端获取图片,数据等信息,本篇文

    2024年01月19日
    浏览(36)
  • PHP8中自定义函数-PHP8知识详解

    1、什么是函数? 函数,在英文中的单词是function,这个词语有功能的意思,也就是说,使用函数就是在编程的过程中,实现一定的功能。即函数就是实现一定功能的一段特定代码。 在前面的教学中,我们已经学习到了函数的使用了,比如,使用define()函数定义一个常量。在这

    2024年02月11日
    浏览(53)
  • php 分配自定义 域名地址

    VirtualHost *:80 ServerName hostName ServerAdmin mail@qq.com DocumentRoot \\\"/path/...\\\" Directory \\\'/path/...\\\' Options FollowSymLinks AllowOverride All Require all granted /Directory php_flag magic_quotes_gpc off php_flag register_globals off php_flag mysql.allow_persistent off /VirtualHost

    2024年02月10日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包