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 破解防盗链图片函数
Dec 09 PHP
探讨:web上存漏洞及原理分析、防范方法
Jun 29 PHP
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
Jul 03 PHP
Codeigniter注册登录代码示例
Jun 12 PHP
ThinkPHP缓存方法S()概述
Jun 13 PHP
PHP实现的多彩标签效果代码分享
Aug 21 PHP
php中convert_uuencode()与convert_uuencode函数用法实例
Nov 22 PHP
php curl请求信息和返回信息设置代码实例
Apr 27 PHP
PHP实现根据时间戳获取周几的方法
Feb 26 PHP
php函数mkdir实现递归创建层级目录
Oct 27 PHP
PHP让网站移动访问更加友好方法
Feb 14 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
Nov 21 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
WordPress中获取页面链接和标题的相关PHP函数用法解析
2015/12/17 PHP
解决出现SoapFault (looks like we got no XML document)的问题
2017/06/24 PHP
PHP实现微信支付(jsapi支付)流程步骤详解
2018/03/15 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
2020/01/07 PHP
IE autocomplete internet explorer's autocomplete
2007/06/30 Javascript
做web开发 先学JavaScript
2014/12/12 Javascript
fullpage.js全屏滚动插件使用实例
2016/09/06 Javascript
jQuery实现磁力图片跟随效果完整示例
2016/09/16 Javascript
jquery uploadify隐藏上传进度的实现方法
2017/02/06 Javascript
javascript用rem来做响应式开发
2018/01/13 Javascript
AngularJs的UI组件ui-Bootstrap之Tooltip和Popover
2018/07/13 Javascript
浅谈js闭包理解
2019/03/28 Javascript
ant-design-vue 快速避坑指南(推荐)
2020/01/21 Javascript
JavaScript canvas实现雪花随机动态飘落
2020/02/08 Javascript
[01:01:51]EG vs VG Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
Python fileinput模块使用实例
2015/05/28 Python
Python爬取三国演义的实现方法
2016/09/12 Python
Python制作简易注册登录系统
2016/12/15 Python
python 禁止函数修改列表的实现方法
2017/08/03 Python
python实现超简单的视频对象提取功能
2018/06/04 Python
python实现批量图片格式转换
2020/06/16 Python
浅谈python连续赋值可能引发的错误
2018/11/10 Python
详解Pandas之容易让人混淆的行选择和列选择
2019/07/10 Python
django的聚合函数和aggregate、annotate方法使用详解
2019/07/23 Python
Python3 venv搭建轻量级虚拟环境的步骤(图文)
2019/08/09 Python
如何利用Python开发一个简单的猜数字游戏
2019/09/22 Python
Python pip安装模块提示错误解决方案
2020/05/22 Python
Python join()函数原理及使用方法
2020/11/14 Python
欧舒丹加拿大官网:L’Occitane加拿大
2017/10/29 全球购物
英国外籍人士的在线超市:British Corner Shop
2019/06/03 全球购物
DJI全球:DJI Global
2021/03/15 全球购物
行政办公室岗位职责
2014/03/18 职场文书
计算机专业应届生求职信
2014/04/06 职场文书
2014年新教师工作总结
2014/11/08 职场文书
2014年局领导班子自身建设情况汇报
2014/11/21 职场文书
焦点访谈观后感
2015/06/11 职场文书