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 相关文章推荐
dedecms 制作模板中使用的全局标记图文教程
Mar 11 PHP
PHP的开发框架的现状和展望
Mar 16 PHP
PHP 处理图片的类实现代码
Oct 23 PHP
php设计模式 Observer(观察者模式)
Jun 26 PHP
Sorting Array Values in PHP(数组排序)
Sep 15 PHP
php实现监听事件
Nov 06 PHP
php读取mysql的简单实例
Jan 15 PHP
Yii实现单用户博客系统文章详情页插入评论表单的方法
Dec 28 PHP
详解WordPress开发中get_header()获取头部函数的用法
Jan 08 PHP
PHP 二维数组和三维数组的过滤
Mar 16 PHP
php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法
Jul 12 PHP
PHP示例演示发送邮件给某个邮箱
Apr 03 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中的日期及时间
2006/11/23 PHP
php imagecreatetruecolor 创建高清和透明图片代码小结
2010/05/15 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
网页右侧悬浮滚动在线qq客服代码示例
2014/04/28 Javascript
javaScript中push函数用法实例分析
2015/06/08 Javascript
javascript实现控制div颜色
2015/07/07 Javascript
学习javascript面向对象 javascript实现继承的方式
2016/01/04 Javascript
非常酷炫的Bootstrap图片轮播动画
2016/05/27 Javascript
ionic组件ion-tabs选项卡切换效果实例
2016/08/27 Javascript
Javascript数组中push方法用法分析
2016/10/31 Javascript
微信小程序之仿微信漂流瓶实例
2016/12/09 Javascript
Iscrool下拉刷新功能实现方法(推荐)
2017/06/26 Javascript
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
2017/10/13 jQuery
jQuery实现checkbox即点即改批量删除及中间遇到的坑
2017/11/11 jQuery
vue-router路由懒加载和权限控制详解
2017/12/13 Javascript
解决Vue2.x父组件与子组件之间的双向绑定问题
2018/03/06 Javascript
使用 node.js 模仿 Apache 小部分功能
2019/07/07 Javascript
vue自定义正在加载动画的例子
2019/11/14 Javascript
vue 中url 链接左边的小图标更改问题
2019/12/30 Javascript
小程序跳转H5页面的方法步骤
2020/03/06 Javascript
Python set常用操作函数集锦
2017/11/15 Python
python traceback捕获并打印异常的方法
2018/08/31 Python
Python的log日志功能及设置方法
2019/07/11 Python
Python logging模块原理解析及应用
2020/08/13 Python
详解HTML5中的标签
2015/06/19 HTML / CSS
借助HTML5 Canvas来绘制三角形和矩形等多边形的方法
2016/03/14 HTML / CSS
Dockers鞋官网:Dockers Shoes
2018/11/13 全球购物
Kipling澳洲官网:购买凯浦林包包
2020/12/17 全球购物
运动会开幕式邀请函
2014/01/22 职场文书
八荣八耻的活动方案
2014/08/16 职场文书
寒山寺导游词
2015/02/03 职场文书
检讨书格式范文
2015/05/07 职场文书
企业计划生育责任书
2015/05/09 职场文书
巴黎圣母院读书笔记
2015/06/26 职场文书
幼儿园安全教育随笔
2015/08/14 职场文书
Oracle配置dblink访问PostgreSQL的操作方法
2022/03/21 PostgreSQL