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 相关文章推荐
如何跨站抓取别的站点的页面的补充
Oct 09 PHP
php mssql 时间格式问题
Jan 13 PHP
php 过滤危险html代码
Jun 29 PHP
php小偷相关截取函数备忘
Nov 28 PHP
php 转换字符串编码 iconv与mb_convert_encoding的区别说明
Nov 10 PHP
openflashchart 2.0 简单案例php版
May 21 PHP
php字符编码转换之gb2312转为utf8
Oct 28 PHP
php导出csv数据在浏览器中输出提供下载或保存到文件的示例
Apr 24 PHP
ThinkPHP页面跳转success与error方法概述
Jun 25 PHP
浅析php单例模式
Nov 25 PHP
PHP文件下载实例代码浅析
Aug 17 PHP
Laravel框架实现的记录SQL日志功能示例
Jun 19 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的FTP学习(一)
2006/10/09 PHP
定义php常量的详解
2013/06/09 PHP
Jquery原生态实现表格header头随滚动条滚动而滚动
2014/03/18 Javascript
jquery datepicker参数介绍和示例
2014/04/15 Javascript
jquery进行数组遍历如何跳出当前的each循环
2014/06/05 Javascript
express的中间件cookieParser详解
2014/12/04 Javascript
JavaScript中数组成员的添加、删除介绍
2014/12/30 Javascript
jQuery中dom元素上绑定的事件详解
2015/04/24 Javascript
Jquery ajax 同步阻塞引起的UI线程阻塞问题
2015/11/17 Javascript
javascript模块化简单解析
2016/04/07 Javascript
jQuery Password Validation密码验证
2016/12/30 Javascript
JS判断键盘是否按的回车键并触发指定按钮点击操作的方法
2017/02/13 Javascript
jquery网页加载进度条的实现
2017/06/01 jQuery
微信小程序实现缓存根据不同的id来进行设置和读取缓存
2017/06/12 Javascript
详解VueJS 数据驱动和依赖追踪分析
2017/07/26 Javascript
vue获取dom元素注意事项
2017/12/28 Javascript
JS实现百度网盘任意文件强制下载功能
2018/08/31 Javascript
JavaScript实现图片的放大缩小及拖拽功能示例
2019/05/14 Javascript
简单了解TypeScript中如何继承 Error 类
2019/06/21 Javascript
不刷新网页就能链接新的js文件方法总结
2020/03/01 Javascript
[42:32]Secret vs Optic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python解析最简单的验证码
2016/01/07 Python
Python 迭代器工具包【推荐】
2016/05/06 Python
Python利用递归和walk()遍历目录文件的方法示例
2017/07/14 Python
在Python 中同一个类两个函数间变量的调用方法
2019/01/31 Python
PyTorch中常用的激活函数的方法示例
2019/08/20 Python
Python分类测试代码实例汇总
2020/07/23 Python
惠普香港官方商店:HP香港
2019/04/30 全球购物
C#里面如何判断一个Object是否是某种类型(如Boolean)?
2016/02/10 面试题
升学宴主持词
2014/04/02 职场文书
一年级评语大全
2014/04/23 职场文书
酒店管理毕业生自荐信
2014/05/25 职场文书
525心理健康活动总结
2015/05/08 职场文书
肖申克的救赎观后感
2015/06/02 职场文书
WinServer2012搭建DNS服务器的方法步骤
2022/06/10 Servers
MySQL实现字段分割一行转多行的示例代码
2022/07/07 MySQL