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获取MSN好友列表类的实现代码
Jun 23 PHP
PHP中判断变量为空的几种方法分享
Aug 26 PHP
一漂亮的PHP图片验证码实例
Mar 21 PHP
浅析PHP编程中10个最常见的错误
Aug 08 PHP
php提示Warning:mysql_fetch_array() expects的解决方法
Dec 16 PHP
ThinkPHP 404页面的设置方法
Jan 14 PHP
smarty简单应用实例
Nov 03 PHP
使用PHP如何实现高效安全的ftp服务器(二)
Dec 30 PHP
PHP进制转换实例分析(2,8,16,36,64进制至10进制相互转换)
Feb 04 PHP
php批量删除操作代码分享
Feb 26 PHP
php curl获取到json对象并转成数组array的方法
May 31 PHP
RSA实现JS前端加密与PHP后端解密功能示例
Aug 05 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
mysql建立外键
2006/11/25 PHP
对PHP新手的一些建议(PHP学习经验总结)
2014/08/20 PHP
JS创建自定义表格具体实现
2014/02/11 Javascript
深入探密Javascript数组方法
2015/01/08 Javascript
jquery判断input值不为空的方法
2016/06/05 Javascript
Vuejs第十篇之vuejs父子组件通信
2016/09/06 Javascript
Canvas实现动态的雪花效果
2017/02/13 Javascript
JavaScript中无法通过div.style.left获取值的解决方法
2017/02/19 Javascript
Javascript面试经典套路reduce函数查重
2017/03/23 Javascript
JS实现动态给标签控件添加事件的方法示例
2017/05/13 Javascript
Node.js 的模块知识汇总
2017/08/16 Javascript
js仿微信抢红包功能
2020/09/25 Javascript
jQuery实现的简单手风琴效果示例
2018/08/29 jQuery
jQuery实现左右两个列表框的内容相互移动功能示例
2019/01/27 jQuery
利用原生JavaScript实现造日历轮子实例代码
2019/05/08 Javascript
为什么Vue3.0使用Proxy实现数据监听(defineProperty表示不背这个锅)
2019/10/14 Javascript
微信小程序登陆注册功能的实现代码
2019/12/10 Javascript
JS实现扫码枪扫描二维码功能
2020/01/03 Javascript
[48:53]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第一场
2014/05/26 DOTA
python多线程threading.Lock锁用法实例
2014/11/01 Python
Python中获取对象信息的方法
2015/04/27 Python
Python合并两个字典的常用方法与效率比较
2015/06/17 Python
解决Python下imread,imwrite不支持中文的问题
2018/12/05 Python
Django ORM多对多查询方法(自定义第三张表&amp;ManyToManyField)
2019/08/09 Python
Django异步任务线程池实现原理
2019/12/17 Python
pycharm通过anaconda安装pyqt5的教程
2020/03/24 Python
python网络编程之五子棋游戏
2020/05/14 Python
解决TensorFlow调用Keras库函数存在的问题
2020/07/06 Python
Python3爬虫中关于Ajax分析方法的总结
2020/07/10 Python
纯CSS3单页切换导航菜单界面设计的简单实现
2016/08/16 HTML / CSS
Pam & Gela官网:美国性感前卫女装品牌
2018/07/19 全球购物
TALLY WEiJL法国网上商店:服装、时装及配饰
2019/08/31 全球购物
一些关于MySql加速和优化的面试题
2014/01/30 面试题
网络技术专业求职信
2014/02/18 职场文书
我的教育故事演讲稿
2014/05/04 职场文书
2014年煤矿安全工作总结
2014/12/04 职场文书