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开发中常用的三个表单验证函数使用小结
Mar 03 PHP
检查php文件中是否含有bom的函数
May 31 PHP
使用php实现截取指定长度
Aug 06 PHP
php中ftp_chdir与ftp_cdup函数用法
Nov 18 PHP
php制作动态随机验证码
Feb 12 PHP
postfixadmin忘记密码后的修改密码方法详解
Jul 20 PHP
PHP实现分布式memcache设置web集群session同步的方法
Apr 10 PHP
PHP实现通过CURL上传文件功能示例
May 30 PHP
php-fpm重启导致的程序执行中断问题详解
Apr 29 PHP
thinkPHP5.1框架中Request类四种调用方式示例
Aug 03 PHP
Laravel 简单实现Ajax滚动加载示例
Oct 22 PHP
php判断IP地址是否在多个IP段内
Aug 18 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 include加载文件两种方式效率比较
2010/08/08 PHP
PHP学习之整理字符串
2011/04/17 PHP
php生成静态文件的多种方法分享
2012/07/17 PHP
PHP中串行化用法示例
2016/11/16 PHP
PHP代码加密的方法总结
2020/03/13 PHP
php模拟post提交请求调用接口示例解析
2020/08/07 PHP
Discuz! 6.1_jQuery兼容问题
2008/09/23 Javascript
IE6下js通过css隐藏select的一个bug
2010/08/16 Javascript
理解JavaScript中的对象 推荐
2011/01/09 Javascript
20个非常棒的 jQuery 幻灯片插件和教程分享
2011/08/23 Javascript
JS实现淘宝幻灯片效果的实现方法
2013/03/22 Javascript
jquery 取子节点及当前节点属性值
2014/07/25 Javascript
推荐5 个常用的JavaScript调试技巧
2015/01/08 Javascript
详解Node全局变量global模块
2017/09/28 Javascript
关于AOP在JS中的实现与应用详解
2019/05/06 Javascript
layer弹出层倒计时关闭的实现方法
2019/09/27 Javascript
[26:21]浴火之凤-TI4世界冠军Newbee战队纪录片
2014/08/07 DOTA
[10:28]2018DOTA2国际邀请赛寻真——VGJ.S寻梦之路
2018/08/15 DOTA
[01:29:42]Liquid vs VP Supermajor决赛 BO 第一场 6.10
2018/07/05 DOTA
Python彩色化Linux的命令行终端界面的代码实例分享
2016/07/02 Python
Django如何实现内容缓存示例详解
2017/09/24 Python
python实现csv格式文件转为asc格式文件的方法
2018/03/23 Python
用TensorFlow实现多类支持向量机的示例代码
2018/04/28 Python
对Tensorflow中的变量初始化函数详解
2018/07/27 Python
Python3对称加密算法AES、DES3实例详解
2018/12/06 Python
Python音频操作工具PyAudio上手教程详解
2019/06/26 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
2019/09/25 Python
详解如何用python实现一个简单下载器的服务端和客户端
2019/10/28 Python
HTML5 标准将把互联网视频扔回到黑暗时代
2010/02/10 HTML / CSS
Ariat官网:美国马靴和服装品牌
2019/12/16 全球购物
检举信的格式及范文
2014/04/04 职场文书
伦敦奥运会口号
2014/06/13 职场文书
新兵入伍心得体会
2014/09/04 职场文书
2015年幼儿园班主任个人工作总结
2015/10/22 职场文书
SpringAop日志找不到方法的处理
2021/06/21 Java/Android
win11自动弹出虚拟键盘怎么关闭? Win11关闭虚拟键盘的技巧
2023/01/09 数码科技