文档章节

PHP如何将数组存入缓存TXT文件并取出后还原成数组

笨小熊
 笨小熊
发布于 2015/10/01 02:21
字数 367
阅读 1035
收藏 13

PHP开发中经常会遇到对数组的操作,有时候需要将数组数据缓存到文件中以便下次更加方便直接调用缓存的数组文件,参考代码如下:

// 写入数组
$array_1 = array(1,'55a',2,'3d6',77);
var_dump($array_1); // 输出原始数组结构
$filename="cache.txt";
$file_hwnd=fopen($filename,"w");
fwrite($file_hwnd,serialize($array_1)); //输入序列化的数据
fclose($file_hwnd);

// 开始读取并还原数组
$filename="cache.txt";
$file_hwnd=fopen($filename,"r");
$content = fread($file_hwnd, filesize($filename)); // 读去文件全部内容
fclose($file_hwnd);
$array_2 = unserialize($content); // 将文本数据转换回数组
var_dump($array_2); // 输出现在的数据结构

 

注意:

1.fopen($filename,"w"):第二次写入数据数据时会把之前写入的数据万千覆盖掉,即使第二次写入的是空的数组;

2.判断从文件中读取的数据是否为空的话,一定要先反序列化(unserialize),再做判断(empty)(即使你写入文件的数组为空数组),

例如:下面的例子中我写入到文件的数组为空的数组,

 1.未序列化就做判断:(错误)

 

 2.序列化后再做判断:(正确)

© 著作权归作者所有

笨小熊
粉丝 13
博文 152
码字总数 68269
作品 0
深圳
高级程序员
私信 提问
加载中

评论(3)

笨小熊
笨小熊 博主

引用来自“老张大哥”的评论

不仅仅是数组,对象也可以。对象要求有上下文才能完整

我会补充的!
肖滔
肖滔
这么强悍
老张大哥
老张大哥
不仅仅是数组,对象也可以。对象要求有上下文才能完整
php使用apc为include大文件数组提速

前言 最近在重写某系统, 有个地方需要include一大数组文件,差不多有1.2M,PHP程序每次跑到这块代码都需要从硬盘读取内容,站点访问量达了势必会造成过量的IO. 考虑使用redis,memcache等KV存储...

小运
2013/10/13
289
1
【Redis】Redis队列使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kisscatforever/article/details/89406645 一、前言 前一段时间,项目中要开发一个活动,为了提高接口的吞吐量...

AresCarry
04/19
0
0
把8位时间类型的字符串存入一个长度为3的byte数组中

1、将一个8位长度的时间字符串(如:“20180409”)存入一个长度为3的byte数组中 2、从这个3个长度的byte数组总读取时间并还原成8位长度的时间字符串

宥洱
2018/04/09
1K
5
Ecshop模板修改_在网站首页显示商品库存

“在ECSHOP首页显示商品库存的方法”, 下面是修改方法 1、 打开 /includes/lib_goods.php 文件(建议使用editplus) 找到下面代码(大概在287行左右) //取出所有符合条件的商品数据,并将结...

Android1989
2014/08/04
262
0
js数组去重的三种常用方法总结

第一种是比较常规的方法 思路: 1.构建一个新的数组存放结果 2.for循环中每次从原数组中取出一个元素,用这个元素循环与结果数组对比 3.若结果数组中没有该元素,则存到结果数组中 复制代码代...

BearCatYN
2015/07/09
71
0

没有更多内容

加载失败,请刷新页面

加载更多

一起来学Java8(三)——方法引用

在一起来学Java8(一)——函数式编程中有一个简单的函数式编程的例子: import java.util.function.Consumer;class Person { public static void sayHello(String name) { S...

猿敲月下码
2分钟前
0
0
读书笔记:深入理解ES6(十一)

第十一章 Promise与异步编程   Promise可以实现其他语言中类似Future和Deferred一样的功能,是另一种异步编程的选择,它既可以像事件和回调函数一样指定稍后执行的代码,也可以明确指示代码...

张森ZS
25分钟前
3
0
面试官,Java8 JVM内存结构变了,永久代到元空间

在文章《JVM之内存结构详解》中我们描述了Java7以前的JVM内存结构,但在Java8和以后版本中JVM的内存结构慢慢发生了变化。作为面试官如果你还不知道,那么面试过程中是不是有些露怯?作为面试...

程序新视界
33分钟前
20
0
Elasticsearch 实战(一) - 简介

官腔 Elasticsearch,分布式,高性能,高可用,可伸缩的搜索和分析系统 基本等于没说,咱们慢慢看 1 概述 百度:我们比如说想找寻任何的信息的时候,就会上百度去搜索一下,比如说找一部自己喜...

JavaEdge
38分钟前
14
0
【jQuery基础学习】11 jQuery性能简单优化

本文转载于:专业的前端网站➦【jQuery基础学习】11 jQuery性能简单优化 关于性能优化 合适的选择器 $("#id")会直接调用底层方法,所以这是最快的。如果这样不能直接找到,也可以用find方法继...

前端老手
47分钟前
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部