php下把数组保存为文件格式的实例应用


Posted in PHP onFebruary 08, 2010

我使用过两种办法:
第一种是数组序列化,简单,但是调用时比较麻烦一些;第二种是保存为标准的数组格式,保存时麻烦但是调用时简单。
第一种方法:
PHP代码

$file="./cache/file.cache"; 
$array = array("color" => array("blue", "red", "green"), 
"size" => array("small", "medium", "large")); 
//缓存 
file_put_contents($file,serialize($array));//写入缓存 
//读出缓存 
$handle = fopen($file, "r"); 
$cacheArray = unserialize(fread($handle, filesize ($file)));

第二种方法:
比较复杂,先贴几个函数:
//写入 
function cache_write($name, $var, $values) { 
$cachefile = S_ROOT.'./data/data_'.$name.'.php'; 
$cachetext = "<?php\r\n". 
"if(!defined('CHECK_CODE')) exit('Access Denied');\r\n". 
'$'.$var.'='.arrayeval($values). 
"\r\n?>"; 
if(!swritefile($cachefile, $cachetext)) { 
exit("File: $cachefile write error."); 
} 
} 
//数组转换成字串 
function arrayeval($array, $level = 0) { 
$space = ''; 
for($i = 0; $i <= $level; $i++) { 
$space .= "\t"; 
} 
$evaluate = "Array\n$space(\n"; 
$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, $level + 1); 
} else { 
$evaluate .= "$comma$key => $val"; 
} 
$comma = ",\n$space"; 
} 
$evaluate .= "\n$space)"; 
return $evaluate; 
} 
//写入文件 
function swritefile($filename, $writetext, $openmod='w') { 
if(@$fp = fopen($filename, $openmod)) { 
flock($fp, 2); 
fwrite($fp, $writetext); 
fclose($fp); 
return true; 
} else { 
runlog('error', "File: $filename write error."); 
return false; 
} 
}

调用方法很简单:
PHP代码
cache_write('file', 'arrayName', $array);

使用上形同标准的include格式:
PHP代码
@include ('./data/data_cache.php'); 
//数组重新排序 
sort($arrayName);
PHP 相关文章推荐
一些使用频率比较高的php函数
Oct 03 PHP
在smarty中调用php内置函数的方法
Feb 07 PHP
解析PHP中的正则表达式以及模式匹配
Jun 19 PHP
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
Dec 25 PHP
php获取当月最后一天函数分享
Feb 02 PHP
php发送邮件的问题详解
Jun 22 PHP
PHP分页初探 一个最简单的PHP分页代码的简单实现
Jun 21 PHP
PHP目录操作实例总结
Sep 27 PHP
php原生导出excel文件的两种方法(推荐)
Nov 19 PHP
PHP验证码无法显示的原因及解决办法
Aug 11 PHP
PHP addcslashes()函数讲解
Feb 03 PHP
Laravel框架自定义分页样式操作示例
Jan 26 PHP
php date与gmdate的获取日期的区别
Feb 08 #PHP
php 获取当前访问的url文件名的方法小结
Feb 08 #PHP
用php实现的下载css文件中的图片的代码
Feb 08 #PHP
php不用内置函数对数组排序的两个算法代码
Feb 08 #PHP
Linux下将excel数据导入到mssql数据库中的方法
Feb 08 #PHP
PHPWind 发帖回帖Api PHP版打包下载
Feb 08 #PHP
php cli 方式 在crotab中运行解决
Feb 08 #PHP
You might like
全国FM电台频率大全 - 1 北京市
2020/03/11 无线电
PHP抽象类 介绍
2012/06/13 PHP
CodeIgniter使用phpcms模板引擎
2013/11/12 PHP
PHP连接MySQL的2种方法小结以及防止乱码
2014/03/11 PHP
php限制ip地址范围的方法
2015/03/31 PHP
php简单压缩css样式示例
2016/09/22 PHP
thinkphp5.1框架容器与依赖注入实例分析
2019/07/23 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
2019/12/02 PHP
语义化 H1 标签
2008/01/14 Javascript
JQuery魔力之$(&quot;tagName&quot;)与selector
2012/03/05 Javascript
点弹代码 点击页面任何位置都可以弹出页面效果代码
2012/09/17 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
2013/12/19 Javascript
jQuery trigger()方法用法介绍
2015/01/13 Javascript
JavaScript中Function详解
2015/02/27 Javascript
jQuery的Scrollify插件实现滑动到页面下一节点
2015/07/05 Javascript
javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
2015/07/27 Javascript
微信企业号开发之微信考勤百度地图定位
2015/09/11 Javascript
基于JavaScript实现回到页面顶部动画代码
2016/05/24 Javascript
JS获取年月日时分秒的方法分析
2016/11/28 Javascript
codeMirror插件使用讲解
2017/01/16 Javascript
微信小程序实现流程进度的图样式功能
2018/01/16 Javascript
如何手动实现一个 JavaScript 模块执行器
2020/10/16 Javascript
JavaScript实现点击出现子菜单效果
2021/02/08 Javascript
详解Python3中的Sequence type的使用
2015/08/01 Python
Python中生成Epoch的方法
2017/04/26 Python
详解Python3注释知识点
2019/02/19 Python
CSS3实现大小不一的粒子旋转加载动画
2016/04/21 HTML / CSS
css3 transform 3d 使用css3创建动态3d立方体(html5实践)
2013/01/06 HTML / CSS
泰国排名第一的家居用品中心:HomePro
2020/11/18 全球购物
美容院考勤制度
2014/01/30 职场文书
2016年“六一儿童节”校园广播稿
2015/12/17 职场文书
MySQL8.0.24版本Release Note的一些改进点
2021/04/22 MySQL
python编写五子棋游戏
2021/05/25 Python
《宝可梦》动画制作25周年到来 官方发布特别纪念视频
2022/04/01 日漫
NASA 机智号火星直升机拍到了毅力号设备碎片
2022/04/29 数码科技