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集成FCK的函数代码
Sep 27 PHP
c#中的实现php中的preg_replace
Dec 21 PHP
zen cart新进商品的随机排序修改方法
Sep 10 PHP
PHP 透明水印生成代码
Aug 27 PHP
php将session放入memcached的设置方法
Feb 14 PHP
跟我学Laravel之请求与输入
Oct 15 PHP
php给每个段落添加空格的方法
Mar 20 PHP
PHP中实现crontab代码分享
Mar 26 PHP
PHP文件上传、客户端和服务器端加限制、抓取错误信息、完整步骤解析
Jan 12 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
Aug 10 PHP
PHP调用API接口实现天气查询功能的示例
Sep 21 PHP
PHP让网站移动访问更加友好方法
Feb 14 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教程 插件机制在PHP中实现方案
2012/11/02 PHP
PHP版 汉字转码的实现详解
2013/06/09 PHP
php中使用gd库实现远程图片下载实例
2015/05/12 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
jQuery .tmpl(), .template()学习资料小结
2011/07/18 Javascript
说说JSON和JSONP 也许你会豁然开朗
2012/09/02 Javascript
定义JavaScript二维数组采用定义数组的数组来实现
2012/12/09 Javascript
扩展IE中一些不兼容的方法如contains、startWith等等
2014/01/09 Javascript
javascript中的事件代理初探
2014/03/08 Javascript
JS实现从网页顶部掉下弹出层效果的方法
2015/08/06 Javascript
利用Mongoose让JSON数据直接插入或更新到MongoDB
2017/05/03 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
2017/08/24 jQuery
Nodejs模块的调用操作实例分析
2018/12/25 NodeJs
js常用方法、检查是否有特殊字符串、倒序截取字符串操作完整示例
2020/01/26 Javascript
解决vue无法侦听数组及对象属性的变化问题
2020/07/17 Javascript
[38:51]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-CDEC
2014/05/22 DOTA
[49:08]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python模块学习 datetime介绍
2012/08/27 Python
Python中实现参数类型检查的简单方法
2015/04/21 Python
Python安装第三方库的3种方法
2015/06/21 Python
Python操作RabbitMQ服务器实现消息队列的路由功能
2016/06/29 Python
Python字符编码判断方法分析
2016/07/01 Python
python  Django中的apps.py的目的是什么
2018/10/15 Python
Python笔记之观察者模式
2019/11/20 Python
Python OpenCV视频截取并保存实现代码
2019/11/30 Python
pytorch::Dataloader中的迭代器和生成器应用详解
2020/01/03 Python
Python发送邮件实现基础解析
2020/08/14 Python
服装公司总经理岗位职责
2013/11/30 职场文书
大专毕业生求职信
2014/07/05 职场文书
关于国庆节的演讲稿
2014/09/05 职场文书
公证委托书标准格式
2014/09/11 职场文书
大学生就业协议书范本(适用于公司企业)
2014/10/07 职场文书
春节晚会开场白
2015/05/29 职场文书
三年级作文之趣事作文
2019/11/04 职场文书
Windows下使用Nginx+Tomcat做负载均衡的完整步骤
2021/03/31 Servers
详解vue身份认证管理和租户管理
2021/05/25 Vue.js