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 相关文章推荐
第十二节--类的自动加载
Nov 16 PHP
php 正则表达式小结
Aug 31 PHP
使用PHP导出Redis数据到另一个Redis中的代码
Mar 12 PHP
PHP调用VC编写的COM组件实例
Mar 29 PHP
php缩放gif和png图透明背景变成黑色的解决方法
Oct 14 PHP
thinkphp3.2.2前后台公用类架构问题分析
Nov 25 PHP
Ubuntu12下编译安装PHP5.3开发环境
Mar 27 PHP
PHP版本如何选择?应该使用哪个版本?
May 13 PHP
PHP版单点登陆实现方案的实例
Nov 17 PHP
smarty模板数学运算示例
Dec 11 PHP
PHP的mysqli_sqlstate()函数讲解
Jan 23 PHP
laravel 解决强制跳转 https的问题
Oct 22 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
php ci框架中加载css和js文件失败的原因及解决方法
2014/07/29 PHP
总结PHP删除字符串最后一个字符的三种方法
2016/08/30 PHP
laravel-admin 在列表页添加自定义按钮的例子
2019/09/30 PHP
斜45度寻路实现函数
2009/08/20 Javascript
extjs关于treePanel+chekBox全部选中以及清空选中问题探讨
2013/04/02 Javascript
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
2013/05/24 Javascript
jquery全选checkBox功能实现代码(取消全选功能)
2013/12/10 Javascript
JavaScript DOM节点添加示例
2014/07/16 Javascript
让angularjs支持浏览器自动填表
2014/11/10 Javascript
js实现密码强度检测【附示例】
2016/03/30 Javascript
javascript表单控件实例讲解
2016/09/13 Javascript
Angularjs 创建可复用组件实例代码
2016/10/09 Javascript
Vuejs 页面的区域化与组件封装的实现
2017/09/11 Javascript
webpack打包js的方法
2018/03/12 Javascript
vue.js使用3DES加密的方法示例
2018/05/18 Javascript
微信小程序map组件结合高德地图API实现wx.chooseLocation功能示例
2019/01/23 Javascript
运用js实现图层拖拽的功能
2019/05/24 Javascript
基于Node的Axure文件在线预览的实现代码
2019/08/28 Javascript
vue 组件开发原理与实现方法详解
2019/11/29 Javascript
利用Python绘制数据的瀑布图的教程
2015/04/07 Python
Django数据库操作的实例(增删改查)
2017/09/04 Python
使用tensorflow实现线性回归
2018/09/08 Python
Django forms组件的使用教程
2018/10/08 Python
Python中使用遍历在列表中添加字典遇到的坑
2019/02/27 Python
利用Python实现微信找房机器人实例教程
2019/03/10 Python
python绘制已知点的坐标的直线实例
2019/07/04 Python
在 Python 中使用 7zip 备份文件的操作
2020/12/11 Python
AC Lens:购买隐形眼镜
2017/02/26 全球购物
初中语文教学反思
2014/02/02 职场文书
致跳高运动员加油稿
2014/02/12 职场文书
企业年度评优方案
2014/06/02 职场文书
政风行风建设责任书
2014/07/23 职场文书
销售内勤岗位职责范本
2015/04/13 职场文书
二婚主持词
2015/06/30 职场文书
敬业奉献模范事迹材料(2016精选版)
2016/02/26 职场文书
小学四年级作文之写景
2019/08/23 职场文书