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 25 PHP
PHP获取网址的顶级域名函数代码
Sep 24 PHP
PHP图片处理之使用imagecopy函数添加图片水印实例
Nov 19 PHP
php使用指定编码导出mysql数据到csv文件的方法
Mar 31 PHP
PHP将页面中点击数量高的链接进行高亮显示的方法
May 30 PHP
PHP模块化安装教程
Jun 01 PHP
Thinkphp连表查询及数据导出方法示例
Oct 15 PHP
PHP的中使用非缓冲模式查询数据库的方法
Feb 05 PHP
php类自动装载、链式操作、魔术方法实现代码
Jul 23 PHP
PHP实现微信支付(jsapi支付)流程步骤详解
Mar 15 PHP
php获得刚插入数据的id 的几种方法总结
May 31 PHP
laravel框架中控制器的创建和使用方法分析
Nov 23 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 header()函数语法及使用代码
2013/11/04 PHP
浅谈thinkphp的nginx配置,以及重写隐藏index.php入口文件方法
2019/10/12 PHP
使用prototype.js 的时候应该特别注意的几个问题.
2007/04/12 Javascript
JavaScript使用技巧精萃[代码非常实用]
2008/11/21 Javascript
js 代码集(学习js的朋友可以看下)
2009/07/22 Javascript
jquery 事件执行检测代码
2009/12/09 Javascript
JavaScript+CSS无限极分类效果完整实现方法
2015/12/22 Javascript
jQuery实现每隔几条元素增加1条线的方法
2016/06/27 Javascript
window.close(); 关闭浏览器窗口js代码的总结介绍
2016/07/14 Javascript
学好js,这些js函数概念一定要知道【推荐】
2017/01/19 Javascript
详解angularJs模块ui-router之状态嵌套和视图嵌套
2017/04/28 Javascript
Bootstrap下拉菜单更改为悬停(hover)触发的方法
2017/05/24 Javascript
用 Vue.js 递归组件实现可折叠的树形菜单(demo)
2017/12/25 Javascript
在vue中使用防抖和节流,防止重复点击或重复上拉加载实例
2019/11/13 Javascript
小程序如何写动态标签的实现方法
2020/02/05 Javascript
[02:44]2014DOTA2 国际邀请赛中国区预选赛 大神红毯秀
2014/05/25 DOTA
[04:52]2015国际邀请赛LGD战队晋级之路
2015/08/14 DOTA
[01:03:00]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第一局
2016/02/25 DOTA
用Python制作简单的朴素基数估计器的教程
2015/04/01 Python
python3实现随机数
2018/06/25 Python
详解Python连接MySQL数据库的多种方式
2019/04/16 Python
python3.6根据m3u8下载mp4视频
2019/06/17 Python
打包python 加icon 去掉cmd黑窗口方法
2019/06/24 Python
Python 正则表达式爬虫使用案例解析
2019/09/23 Python
python实现批量文件重命名
2019/10/31 Python
Python操作MySQL数据库实例详解【安装、连接、增删改查等】
2020/01/17 Python
Python爬虫实现vip电影下载的示例代码
2020/04/20 Python
Python自动化xpath实现自动抢票抢货
2020/09/19 Python
使用CSS3的rem属性制作响应式页面布局的要点解析
2016/05/24 HTML / CSS
实例讲解HTML5的meta标签的一些应用
2015/12/08 HTML / CSS
世界上最大的皮肤科医生拥有和经营的美容网站:LovelySkin
2021/01/03 全球购物
秋季运动会加油稿200字
2014/01/11 职场文书
产品质量承诺范本
2014/03/31 职场文书
交通事故协议书范文
2014/04/16 职场文书
单位绩效考核方案
2014/05/11 职场文书
Django路由层如何获取正确的url
2021/07/15 Python