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 date()日期时间函数详解
May 16 PHP
php笔记之:php数组相关函数的使用
Apr 26 PHP
一个简洁的PHP可逆加密函数(分享)
Jun 06 PHP
PHP URL参数获取方式的四种例子
Feb 28 PHP
php输入数据统一类实例
Feb 23 PHP
简单谈谈php延迟静态绑定
Jan 26 PHP
PHP实现登陆表单提交CSRF及验证码
Jan 24 PHP
PHP计算近1年的所有月份
Mar 13 PHP
浅谈PHP封装CURL
Mar 06 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
Feb 27 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
Apr 13 PHP
如何运行/调试你的PHP代码
Oct 23 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
php出现内存位置访问无效错误问题解决方法
2014/08/16 PHP
PHP获取某个月最大天数(最后一天)的方法
2015/07/29 PHP
编写PHP脚本来实现WordPress中评论分页的功能
2015/12/10 PHP
php中引用&amp;的用法分析【变量引用,函数引用,对象引用】
2016/12/12 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
FCK调用方法..
2006/12/21 Javascript
!DOCTYPE声明对JavaScript的影响分析
2010/04/12 Javascript
新浪微博字数统计 textarea字数统计实现代码
2011/08/28 Javascript
JS中的substring和substr函数的区别说明
2013/05/07 Javascript
了解了这些才能开始发挥jQuery的威力
2013/10/10 Javascript
Node.js文件操作详解
2014/08/16 Javascript
jQuery+HTML5实现手机摇一摇换衣特效
2015/06/05 Javascript
jquery实现TAB选项卡鼠标经过带延迟效果的方法
2015/07/27 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
2016/06/16 Javascript
深入理解JavaScript中的块级作用域、私有变量与模块模式
2016/10/31 Javascript
React组件生命周期详解
2017/07/03 Javascript
实例教学如何写vue插件
2017/11/30 Javascript
nodejs中方法和模块用法示例
2018/12/24 NodeJs
微信小程序8种数据通信的方式小结
2020/02/03 Javascript
vue设置默认首页的操作
2020/08/12 Javascript
在python中用print()输出多个格式化参数的方法
2019/07/16 Python
python中hasattr()、getattr()、setattr()函数的使用
2019/08/16 Python
win10环境下配置vscode python开发环境的教程详解
2019/10/16 Python
python循环输出三角形图案的例子
2019/11/22 Python
Python 使用threading+Queue实现线程池示例
2019/12/21 Python
python实现用户名密码校验
2020/03/18 Python
Keras 数据增强ImageDataGenerator多输入多输出实例
2020/07/03 Python
Django模型验证器介绍与源码分析
2020/09/08 Python
Java提供了哪些企业应用编程接口
2015/02/13 面试题
.net笔试题
2014/03/03 面试题
什么是测试驱动开发(TDD)
2012/02/15 面试题
大学自我鉴定
2013/12/20 职场文书
企业党员一句话承诺
2014/05/30 职场文书
战略合作意向书
2014/07/29 职场文书
会计试用期自我评价怎么写
2014/09/18 职场文书
法律意见书范文
2015/05/20 职场文书