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. Grovvy Step byStep Examples

    def LIMIT=10 def count=1 println 'start' while(count<=LIMIT){ println "count:${count}" ...

  2. ADHelper C#域用户操作(转)

    using System; using System.Collections.Generic; using System.DirectoryServices; using System.Linq; u ...

  3. TRUNC函数,ORA-01898 精度说明符过多

    TRUNC(SYSDATE)即可默认当前日期(年月日),TRUNC(SYSDATE,'yyyy-mm-dd'),精度说明符过多

  4. hdu4081 次小生成树

    题意:有n个点,n-1条边.现在徐福可以让一条边无消耗建立,即魔法边.B表示除魔法边之外的的其他边的消耗值和,A表示这条魔法边相连的2个集合中都选一点,这两点的最大值,现在要求A/B最大. 方法:因为 ...

  5. hdu1305 字典树

    这题我开始想的简单了,WA一次,然后看disscuss里有人说输入时长度从小到大的,然后我信了.然后开始while(1) WA;然后我尝试先放如数组.后来对了: discuss里面果然不能太相信. 根 ...

  6. 17.(转) Android之四大基本组件介绍与生命周期

    Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器. 一:了解四大基本组件 Activity ...

  7. Linux数据包路由原理、Iptables/netfilter入门学习

    相关学习资料 https://www.frozentux.net/iptables-tutorial/cn/iptables-tutorial-cn-1.1.19.html http://zh.wik ...

  8. 两个大的整数的运算(java)

    import java.math.BigInteger; public class BigInt { BigInteger m1; BigInteger m2; BigInteger m3; BigI ...

  9. P1067Warcraft III 守望者的烦恼(十大矩阵问题之七求递推式)

    https://vijos.org/p/1067 守望者-warden,长期在暗夜精灵的的首都艾萨琳内担任视察监狱的任务,监狱是成长条行的,守望者warden拥有一个技能名叫“闪烁”,这个技能可以把她 ...

  10. leach和leach-c协议仿真

    http://blog.csdn.net/codingkid/article/details/7215216 1.复制leach_test为leach-c_test,修改里面的文件夹和输出文件名.并且 ...