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 相关文章推荐
PHP 设计模式之观察者模式介绍
Feb 22 PHP
领悟php接口中interface存在的意义
Jun 27 PHP
PHP源码分析之变量的存储过程分解
Jul 03 PHP
YII实现分页的方法
Jul 09 PHP
PHP限制HTML内容中图片必须是本站的方法
Jun 16 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
Mar 04 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
Dec 12 PHP
php获取网站根目录物理路径的几种方法(推荐)
Mar 04 PHP
ThinkPHP框架分布式数据库连接方法详解
Mar 14 PHP
PHP内置函数生成随机数实例
Jan 18 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
Apr 30 PHP
laravel实现上传图片的两种方式小结
Oct 12 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
数字转英文
2006/12/06 PHP
一步一步学习PHP(8) php 数组
2010/03/05 PHP
php模拟post提交数据的方法
2015/02/12 PHP
WIN8.1下搭建PHP5.6环境
2015/04/29 PHP
php类中的$this,static,final,const,self这几个关键字使用方法
2015/12/14 PHP
PHP 中提示undefined index如何解决(多种方法)
2016/03/16 PHP
php防止sql注入的方法详解
2017/02/20 PHP
srcElement表格样式
2006/09/03 Javascript
js实现addClass,removeClass,hasClass的函数代码
2011/07/13 Javascript
Jquery中国地图热点效果-鼠标经过弹出提示层信息的简单实例
2014/02/12 Javascript
jquery ajax应用中iframe自适应高度问题解决方法
2014/04/12 Javascript
JS表格组件神器bootstrap table详解(基础版)
2015/12/08 Javascript
举例讲解如何判断JavaScript中对象的类型
2016/04/22 Javascript
三种带箭头提示框总结实例
2016/06/14 Javascript
利用纯Vue.js构建Bootstrap组件
2016/11/03 Javascript
探讨AngularJs中ui.route的简单应用
2016/11/16 Javascript
详解angular2封装material2对话框组件
2017/03/03 Javascript
bootstrap paginator分页插件的两种使用方式实例详解
2017/11/14 Javascript
Vue 框架之动态绑定 css 样式实例分析
2018/11/14 Javascript
vue-cli3+typescript初体验小结
2019/02/28 Javascript
详解ES6数组方法find()、findIndex()的总结
2020/05/12 Javascript
[44:15]国士无双DOTA2 6.82版本详解(上)
2014/09/28 DOTA
python网页请求urllib2模块简单封装代码
2014/02/07 Python
详解Python的collections模块中的deque双端队列结构
2016/07/07 Python
读取本地json文件,解析json(实例讲解)
2017/12/06 Python
分享6个隐藏的python功能
2017/12/07 Python
Python父目录、子目录的相互调用方法
2019/02/16 Python
Django+zTree构建组织架构树的方法
2019/08/21 Python
HTML中fieldset标签概述及使用方法
2013/02/01 HTML / CSS
学生会主席事迹材料
2014/01/28 职场文书
周年庆典主持词
2014/04/02 职场文书
省级优秀班集体申报材料
2014/05/25 职场文书
2014年组织部工作总结
2014/11/14 职场文书
2014城乡环境综合治理工作总结
2014/12/19 职场文书
投诉书范文
2015/07/02 职场文书
地震捐款简报
2015/07/21 职场文书