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的一个完整SMTP类(解决邮件服务器需要验证时的问题)
Oct 09 PHP
透析PHP的配置文件php.ini
Oct 09 PHP
实现了一个PHP5的getter/setter基类的代码
Feb 25 PHP
hessian 在PHP中的使用介绍
Dec 13 PHP
关于php连接mssql:pdo odbc sql server
Jul 20 PHP
在PHP中利用wsdl创建标准webservice的实现代码
Dec 07 PHP
限制ckeditor上传图片文件大小的方法
Nov 15 PHP
PHP往XML中添加节点的方法
Mar 12 PHP
PHP实现通过URL提取根域名
Mar 31 PHP
php使用ffmpeg获取视频信息并截图的实现方法
May 03 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
Jan 07 PHP
php use和include区别总结
Oct 13 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 下载保存文件保存到本地的两种实现方法
2013/08/12 PHP
在php和MySql中计算时间差的方法详解
2015/03/27 PHP
如何解决phpmyadmin导入数据库文件最大限制2048KB
2015/10/09 PHP
浅谈mysql_query()函数的返回值问题
2016/09/05 PHP
PHP面向对象学习之parent::关键字
2017/01/18 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
2019/04/09 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
JS 类型转换常见方法小结
2010/05/31 Javascript
分享8款优秀的 jQuery 加载动画和进度条插件
2012/10/24 Javascript
快速使用node.js进行web开发详解
2017/04/26 Javascript
浅析JS中常用类型转换及运算符表达式
2017/07/23 Javascript
Node.js如何实现注册邮箱激活功能 (常见)
2017/07/23 Javascript
ES6 javascript中Class类继承用法实例详解
2017/10/30 Javascript
微信小程序公用参数与公用方法用法示例
2019/01/09 Javascript
浅谈在vue-cli3项目中解决动态引入图片img404的问题
2020/08/04 Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
2020/11/06 Javascript
[01:47]2018年度DOTA2最具人气解说-完美盛典
2018/12/16 DOTA
Python实现代码统计工具(终极篇)
2016/07/04 Python
windows下python之mysqldb模块安装方法
2017/09/07 Python
Python3.6日志Logging模块简单用法示例
2018/06/14 Python
pybind11和numpy进行交互的方法
2019/07/04 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
2019/09/28 Python
基于python的列表list和集合set操作
2019/11/24 Python
Python中类似于jquery的pyquery库用法分析
2019/12/02 Python
jupyter notebook 参数传递给shell命令行实例
2020/04/10 Python
Canvas 像素处理之改变透明度的实现代码
2019/01/08 HTML / CSS
英国最大的奢侈珠宝和手表网站:C W Sellors
2017/02/10 全球购物
Omio意大利:全欧洲低价大巴、火车和航班搜索和比价
2017/12/02 全球购物
关于是否需要写商业计划书
2014/02/07 职场文书
消防应急演练方案
2014/02/12 职场文书
民族学专业求职信
2014/07/28 职场文书
2014年小学数学工作总结
2014/12/12 职场文书
门卫岗位职责
2015/02/09 职场文书
2015年毕业生个人自荐书
2015/03/24 职场文书
生日寿星公答谢词
2015/09/29 职场文书
学生检讨书范文
2019/06/24 职场文书