php 缓存数组形式的变量,实际上就是将 php 将数组写入到一个文本文件或者后缀名为 .php 存储起来,使用的时候直接调用这个文件。那么如何使用 php 将数组保存为文本格式的文件呢?下面分享三种方法实现将 php 数组写入到文件以缓存数组。
 
(1)利用php的序列化函数 serialize 和反序列化函数unserialize可以将数组序列化存储为文本文件,然后再反序列化做为数组取出。
PHP Code复制内容到剪贴板
  1. <?php
  2. $file='./cache/phone.php';
  3. $array=array('color'=> array('blue','red','green'),'size'=> array('small','medium','large'));
  4. //缓存
  5. if(false!==fopen($file,'w+')){
  6. file_put_contents($file,serialize($array));//写入缓存
  7. }
  8. //读出缓存
  9. $handle=fopen($file,'r');
  10. $cacheArray=unserialize(fread($handle,filesize($file)));
 
(2)自创的将数组保存为标准的数组格式,虽然保存时复杂了点但是调用时简单
PHP Code复制内容到剪贴板
  1. <?php
  2. $file='./cache/phone.php';
  3. $array=array('color'=> array('blue','red','green'),'size'=> array('small','medium','large'));
  4. //缓存
  5. if(false!==fopen($file,'w+')){
  6. file_put_contents($file,serialize($array));//写入缓存
  7. }
  8. //读出缓存
  9. $handle=fopen($file,'r');
  10. $cacheArray=unserialize(fread($handle,filesize($file)));
 
(3)利用 php的自带函数var_export 可以数组直接保存为数组形式存储到文本文件中(推荐)
PHP Code复制内容到剪贴板
  1. <?php
  2. $file='./cache/phone.php';
  3. $array=array('color'=> array('blue','red','green'),'size'=> array('small','medium','large'));
  4. //缓存
  5. $text='<?php $rows='.var_export($array,true).';';
  6. if(false!==fopen($file,'w+')){
  7. file_put_contents($file,$text);
  8. }else{
  9. echo '创建失败';
  10. }
 
通过以上三种方法,比较常用的应该还是第三种和第一种,推荐使用第三种方法,因为方便、简单、快捷。

php的
1、PHP序列化 serialize 格式详解
2、PHP对变量进行序列化的方法大比拼 四种序列化变量的方法
3、php编写大型网站问题集

php如何将数组保存为文件的方法? 三个方法让你快速把数组保存成为文件存储的更多相关文章

  1. linux清空文件内容的三种方法

    linux系统中清空文件内容的三种方法 1.使用vi/vim命令打开文件后,输入"%d"清空,后保存即可.但当文件内容较大时,处理较慢,命令如下:vim file_name:%d: ...

  2. 文件读写(三)利用FileStream类操作字节数组byte[]、BinaryFormatter、内存流MemoryStream

    一.Stream类概述 在.NET Framework中,文件和流是有区别的.文件是存储在磁盘上的数据集,它具有名称和相应的路径.当打开一个文件并对其进行读/写时,该文件就称为流(stream).但是 ...

  3. php读取文件内容的三种方法

    <?php //**************第一种读取方式***************************** 代码如下: header("content-type:text/h ...

  4. js判断数组中是否有重复值得三种方法

    方法一: var s = ary.join(",")+","; for(var i=0;i<ary.length;i++) { if(s.replace( ...

  5. 详解linux下批量替换文件内容的三种方法(perl,sed,shell)

    在建设本网站的时候,发现新建了很多的网页,突然发现,每个文件都需要进行修改一样的内容,一个一个打开很是麻烦,所以,总结了一下如何快速修改一个目录下多个文件进行内容替换.第三种方法用的不多 方法一 使用 ...

  6. Delphi中实现文件拷贝的三种方法

    1.调用API函数procedure CopyFile(FromFileName,ToFileName:string);varf1,f2:file;BeginAssignFile(f1,FromFil ...

  7. Java追加文件内容的三种方法

    import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io. ...

  8. ASP.net 判断上传文件类型的三种方法

    一. 安全性比较低,把文本文件1.txt改成1.jpg照样可以上传,但其实现方法容易理解,实现也简单,所以网上很多还是采取这种方法. Boolean fileOk = false; string pa ...

  9. 用ASP.net判断上传文件类型的三种方法

    一. 安全性比较低,把文本文件1.txt改成1.jpg照样可以上传,但其实现方法容易理解,实现也简单,所以网上很多还是采取这种方法. Boolean fileOk = false;           ...

  10. 前端下载excel文件功能的三种方法

    1 从后端接收json数据,前端处理生成excel下载 JsonExportExcel的github地址:https://github.com/cuikangjie/JsonExportExcel 这 ...

随机推荐

  1. Code Hunters: Hello, world!

    大家好!我们是来自MSRA联合培养班的Code Hunters小组,在未来三个月时间里我们将与殷秋丰老师一起学习高级软件工程这门课. 我们小组共有五名分别来自享誉海内外的中国科学技术大学和北京航空航天 ...

  2. HTML5动画实例

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  3. NS图绘制工具推荐

    世界上要画NS图的人肯定很少,这种无聊的东西= = 我根据个人经验和直觉,推荐三个套工具. 一.签字笔(铅笔+橡皮)+作业纸+拍照的手机 鉴于我以前手绘版ns图已经找不到了,就用室友之前画的做个例子. ...

  4. BZOJ-2257 瓶子和燃料 分解因数+数论方面乱搞(裴蜀定理)

    一开始真没想出解法...后来发现那么水.... 2257: [Jsoi2009]瓶子和燃料 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 970 So ...

  5. 学习笔记-KMP算法

    按照学习计划和TimeMachine学长的推荐,学习了一下KMP算法. 昨晚晚自习下课前粗略的看了看,发现根本理解不了高端的next数组啊有木有,不过好在在今天系统的学习了之后感觉是有很大提升的了,起 ...

  6. The constructor ClassPathXmlApplicationContext(String) refers to the missing type BeansException

    Spring4.X配置一个简单的读取sping的xml的配置文件结果

  7. CODEVS1995 || TYVJ1863 黑魔法师之门

    P1863 [Poetize I]黑魔法师之门 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 经过了16个工作日的紧张忙碌,未来的人类终于收集到了足够的能源 ...

  8. Chkrootkit Sourcecode Learning

    目录 . Chkrootkit Introduce . Source Code Frame . chklastlog.c . chkwtmp.c . ifpromisc.c . chkproc.c . ...

  9. POJ2965The Pilots Brothers' refrigerator(枚举+DFS)

    The Pilots Brothers' refrigerator Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 22057 ...

  10. FOJProblem 2214 Knapsack problem(01背包+变性思维)

    http://acm.fzu.edu.cn/problem.php?pid=2214 Accept: 4    Submit: 6Time Limit: 3000 mSec    Memory Lim ...