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. 一头扎进EasyUI2

    惯例广告一发,对于初学真,真的很有用www.java1234.com,去试试吧! 一头扎进EasyUI第6讲 .日历组件 <div class="easyui-calendar&quo ...

  2. 第十四章:Annotation(注释)

    一:注解 1.当成是一种修饰符吧,修饰类及类的所有成员. 代码里的特殊标记,这些标记可以在编译.类加载.运行时被读取. 2.@Override:强制子类覆盖(重写)父类的方法. @Deprecated ...

  3. shell--题目

    1.有一个文件,里面有二列,第一列ip地址,第二列是时间,同一个ip可能出现多次,但时间不同. 文件类似下面的样子: 192.168.1.2              13:10 192.127.12 ...

  4. jQuery技术交流资料

    jQuery技术交流资料https://www.zybuluo.com/jikeytang/note/65371

  5. JAVA中单例模式的几种实现方式

    1 线程不安全的实现方法 首先介绍java中最基本的单例模式实现方式,我们可以在一些初级的java书中看到.这种实现方法不是线程安全的,所以在项目实践中如果涉及到线程安全就不会使用这种方式.但是如果不 ...

  6. HDU2222 Keywords Search [AC自动机模板]

    Keywords Search Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others ...

  7. iOS开源项目汇总

    扫描wifi信息: http://code.google.com/p/uwecaugmentedrealityproject/ http://code.google.com/p/iphone-wire ...

  8. if,switch,do,while,for实例

    1.#include <stdio.h>void f1(int i){    if( i < 6 )    {        printf("Failed!\n" ...

  9. java 小记

    1.获取web项目根目录的绝对路径 request.getContextPath()  获取项目名称,如    /BiYeSheJi getServletContext().getRealPath(& ...

  10. (转)CSS3 @font-face

    @font-face是CSS3中的一个模块,他主要是把自己定义的Web字体嵌入到你的网页中,随着@font-face模块的出现,我们在Web的开发中使用字体不怕只能使用Web安全字体,你们当中或许有许 ...