php将数组存储为文本文件方法汇总


Posted in PHP onOctober 28, 2015

php 缓存数组形式的变量,实际上就是将 php 将数组写入到一个文本文件或者后缀名为 .php 存储起来,使用的时候直接调用这个文件。那么如何使用 php 将数组保存为文本格式的文件呢?下面分享三种方法实现将 php 数组写入到文件以缓存数组。
(1)利用serialize 将数组序列化存储为文本文件,调用时候再使用unserialize 还原

<?php 
$file='./cache/phone.php'; 
$array=array('color'=> array('blue','red','green'),'size'=> array('small','medium','large')); 
//缓存 
if(false!==fopen($file,'w+')){ 
  file_put_contents($file,serialize($array));//写入缓存 
} 
//读出缓存 
$handle=fopen($file,'r'); 
$cacheArray=unserialize(fread($handle,filesize($file)));

(2)自创的将数组保存为标准的数组格式,虽然保存时复杂了点但是调用时简单

<?php 
$file='./cache/phone.php'; 
$array=array('color'=> array('blue','red','green'),'size'=> array('small','medium','large')); 
cache_write($file,$array,'rows',false); 
 
//写入 
function cache_write($filename,$values,$var='rows',$format=false){ 
  $cachefile=$filename; 
  $cachetext="<?php\r\n".'$'.$var.'='.arrayeval($values,$format).";"; 
  return writefile($cachefile,$cachetext); 
} 
 
//数组转换成字串 
function arrayeval($array,$format=false,$level=0){ 
  $space=$line=''; 
  if(!$format){ 
    for($i=0;$i<=$level;$i++){ 
      $space.="\t"; 
    } 
    $line="\n"; 
  } 
  $evaluate='Array'.$line.$space.'('.$line; 
  $comma=$space; 
  foreach($array as $key=> $val){ 
    $key=is_string($key)?'\''.addcslashes($key,'\'\\').'\'':$key; 
    $val=!is_array($val)&&(!preg_match('/^\-?\d+$/',$val)||strlen($val) > 12)?'\''.addcslashes($val,'\'\\').'\'':$val; 
    if(is_array($val)){ 
      $evaluate.=$comma.$key.'=>'.arrayeval($val,$format,$level+1); 
    }else{ 
      $evaluate.=$comma.$key.'=>'.$val; 
    } 
    $comma=','.$line.$space; 
  } 
  $evaluate.=$line.$space.')'; 
  return $evaluate; 
} 
 
//写入文件 
function writefile($filename,$writetext,$openmod='w'){ 
  if(false!==$fp=fopen($filename,$openmod)){ 
    flock($fp,2); 
    fwrite($fp,$writetext); 
    fclose($fp); 
    return true; 
  }else{ 
    return false; 
  } 
}

(3)利用 var_export 将数组直接保存为数组形式存储到文本文件中

<?php 
$file='./cache/phone.php'; 
$array=array('color'=> array('blue','red','green'),'size'=> array('small','medium','large')); 
//缓存 
$text='<?php $rows='.var_export($array,true).';'; 
if(false!==fopen($file,'w+')){ 
  file_put_contents($file,$text); 
}else{ 
  echo '创建失败'; 
}

以上就是为大家介绍的三种php将数组保存为文本格式的方法,希望对大家的学习有所帮助。

PHP 相关文章推荐
header()函数使用说明
Nov 23 PHP
php最简单的删除目录与文件实现方法
Nov 28 PHP
php创建session的方法实例详解
Jan 27 PHP
PHP根据图片色界在不同位置加水印的方法
Jul 01 PHP
smarty中常用方法实例总结
Aug 07 PHP
windows下apache搭建php开发环境
Aug 27 PHP
一个简单安全的PHP验证码类 附调用方法
Jun 24 PHP
PHP实现QQ快速登录的方法
Sep 28 PHP
PHP数组操作简单案例分析
Oct 15 PHP
PHP获取表单数据与HTML嵌入PHP脚本的实现
Feb 09 PHP
php中上传文件的的解决方案
Sep 25 PHP
Laravel框架实现抢红包功能示例
Oct 31 PHP
php如何获取文件的扩展名
Oct 28 #PHP
php检查页面是否被百度收录
Oct 28 #PHP
PHP加密解密函数详解
Oct 28 #PHP
php实现阳历阴历互转的方法
Oct 28 #PHP
PHP框架Laravel学习心得体会
Oct 28 #PHP
php抓取并保存网站图片的实现代码
Oct 28 #PHP
php判断当前操作系统类型
Oct 28 #PHP
You might like
Http 1.1 Etag 与 Last-Modified提高php效率
2008/01/10 PHP
PHP 多维数组排序实现代码
2009/08/05 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
2019/02/20 PHP
jQuery使用手册之 事件处理
2007/03/24 Javascript
JavaScript学习历程和心得小结
2010/08/16 Javascript
jQuery中add实现同时选择两个id对象
2010/10/22 Javascript
JavaScript中json对象和string对象之间相互转化
2012/12/26 Javascript
jquery 图片缩放拖动的简单实例
2014/01/08 Javascript
JS的数组迭代方法
2015/02/05 Javascript
JQuery中DOM事件冒泡实例分析
2015/06/13 Javascript
JS调用某段SQL语句的方法
2016/10/20 Javascript
详解node.js搭建代理服务器请求数据
2017/04/08 Javascript
jquery一键控制checkbox全选、反选或全不选
2017/10/16 jQuery
vue组件watch属性实例讲解
2017/11/07 Javascript
ES6中Symbol、Set和Map用法详解
2019/08/20 Javascript
vue实现前端列表多条件筛选
2020/10/26 Javascript
在antd Form表单中select设置初始值操作
2020/11/02 Javascript
Python中的startswith和endswith函数使用实例
2014/08/25 Python
Python+OpenCV实现图像融合的原理及代码
2018/12/03 Python
浅谈matplotlib中FigureCanvasXAgg的用法
2020/06/16 Python
golang/python实现归并排序实例代码
2020/08/30 Python
基于python实现简单网页服务器代码实例
2020/09/14 Python
python 装饰器的基本使用
2021/01/13 Python
Viking Direct爱尔兰:办公用品和家具
2019/11/21 全球购物
俄罗斯建筑和装饰材料在线商店:Stroilandia
2020/07/25 全球购物
Fnac西班牙官网:法国文化和电子产品零售商
2021/03/14 全球购物
优秀士兵个人事迹材料
2014/01/19 职场文书
创建市级文明单位实施方案
2014/03/01 职场文书
2014年学习全国道德模范事迹思想汇报
2014/09/15 职场文书
逃课打麻将检讨书
2014/10/05 职场文书
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
公司费用报销管理制度
2015/08/04 职场文书
2016年度继续教育学习心得体会
2016/01/19 职场文书
2016年小学圣诞节活动总结
2016/03/31 职场文书
教你解决往mysql数据库中存入汉字报错的方法
2021/05/06 MySQL
IDEA中sout快捷键无效问题的解决方法
2022/07/23 Java/Android