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 相关文章推荐
一个简单的MySQL数据浏览器
Oct 09 PHP
php巧获服务器端信息
Dec 06 PHP
URL Rewrite的设置方法
Jan 02 PHP
php session应用实例 登录验证
Mar 16 PHP
为IP查询添加GOOGLE地图功能的代码
Aug 08 PHP
php压缩多个CSS为一个css的代码并缓存
Apr 21 PHP
php操作JSON格式数据的实现代码
Dec 24 PHP
PHP生成sitemap.xml地图函数
Nov 13 PHP
PHP间隔一段时间执行代码的方法
Dec 02 PHP
php使用Jpgraph绘制饼状图的方法
Jun 10 PHP
PHP面向对象自动加载机制原理与用法分析
Oct 14 PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
Jun 06 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信息的方法
2015/03/16 PHP
php比较相似字符串的方法
2015/06/05 PHP
PHP实现支持加盐的图片加密解密
2016/09/09 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
2017/08/10 PHP
详谈symfony window下的安装 安装时候出现的问题以及解决方法
2017/09/28 PHP
PHP实现打包下载文件的方法示例
2017/10/07 PHP
用roll.js实现的图片自动滚动+鼠标触动的特效
2007/03/18 Javascript
javascript Math.random()随机数函数
2009/11/04 Javascript
js动画(animate)简单引擎代码示例
2012/12/04 Javascript
使用JavaScript和C#中获得referer
2014/11/14 Javascript
浅谈Nodejs观察者模式
2015/10/13 NodeJs
JavaScript中setTimeout和setInterval函数的传参及调用
2016/03/11 Javascript
JS导出PDF插件的方法(支持中文、图片使用路径)
2016/07/12 Javascript
对Js OOP编程 创建对象的一些全面理解
2016/07/26 Javascript
js实现日历与定时器
2017/02/22 Javascript
简单谈谈CommonsChunkPlugin抽取公共模块
2017/12/31 Javascript
Vue.js 点击按钮显示/隐藏内容的实例代码
2018/02/08 Javascript
jQuery实现鼠标响应式淘宝动画效果示例
2018/02/13 jQuery
webpack4.0+vue2.0利用批处理生成前端单页或多页应用的方法
2019/06/28 Javascript
vue新建项目并配置标准路由过程解析
2019/12/09 Javascript
[07:31]DOTA2卡尔工作室 英雄介绍主宰篇
2013/06/25 DOTA
[09:59]DOTA2-DPC中国联赛2月7日Recap集锦
2021/03/11 DOTA
Django视图之ORM数据库查询操作API的实例
2017/10/27 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
2018/05/15 Python
python中单下划线_的常见用法总结
2018/07/10 Python
python3.8与pyinstaller冲突问题的快速解决方法
2020/01/16 Python
python模拟哔哩哔哩滑块登入验证的实现
2020/04/24 Python
装上这 14 个插件后,PyCharm 真的是无敌的存在
2021/01/11 Python
德国黑胶唱片、街头服装及运动鞋网上商店:HHV
2018/08/24 全球购物
杭州-飞时达软件有限公司.net笔面试
2012/04/28 面试题
护士自我鉴定
2013/10/23 职场文书
机关门卫的岗位职责
2014/04/29 职场文书
员工年度工作总结2015
2015/05/18 职场文书
悬崖上的金鱼姬观后感
2015/06/15 职场文书
2019旅游导游工作总结
2019/06/27 职场文书
MongoDB使用profile分析慢查询的步骤
2021/04/30 MongoDB