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与ASP
Oct 09 PHP
菜鸟学PHP之Smarty入门
Jan 04 PHP
PHP 定界符 使用技巧
Jun 14 PHP
给初学者的30条PHP最佳实践(荒野无灯)
Aug 02 PHP
php中通过curl模拟登陆discuz论坛的实现代码
Feb 16 PHP
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
Jun 05 PHP
定义php常量的详解
Jun 09 PHP
深入解析php中的foreach函数
Aug 31 PHP
php初始化对象和析构函数的简单实例
Mar 11 PHP
[原创]php获取数组中键值最大数组项的索引值
Mar 17 PHP
php ajax实现文件上传进度条
Mar 29 PHP
Laravel 创建指定表 migrate的例子
Oct 09 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实现带进度条的Ajax文件上传功能示例
2019/07/02 PHP
JavaScript使用cookie
2007/02/02 Javascript
JavaScript 继承详解(一)
2009/07/13 Javascript
javascript时区函数介绍
2012/09/14 Javascript
javascript中判断一个值是否在数组中并没有直接使用
2012/12/17 Javascript
JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
2014/10/17 Javascript
Javascript检查图片大小不要让大图片撑破页面
2014/11/04 Javascript
Javascript数组与字典用法分析
2014/12/13 Javascript
js检测判断日期大于多少天的方法
2015/05/04 Javascript
JavaScript实现带有子菜单和控件的slider轮播图效果
2017/11/01 Javascript
微信小程序实现下载进度条的方法
2017/12/08 Javascript
在vue中,v-for的索引index在html中的使用方法
2018/03/06 Javascript
React中使用UEditor百度富文本的方法
2018/08/22 Javascript
JavaScript实现指定数量的并发限制的示例代码
2020/03/10 Javascript
JavaScript Window浏览器对象模型原理解析
2020/05/30 Javascript
[03:40]DOTA2英雄梦之声_第01期_炼金术士
2014/06/23 DOTA
[56:29]Secret vs Optic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
netbeans7安装python插件的方法图解
2013/12/24 Python
讲解Python中的递归函数
2015/04/27 Python
python版本坑:md5例子(python2与python3中md5区别)
2017/06/20 Python
padas 生成excel 增加sheet表的实例
2018/12/11 Python
python实现五子棋游戏
2019/06/18 Python
pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率
2020/01/02 Python
python GUI库图形界面开发之PyQt5不规则窗口实现与显示GIF动画的详细方法与实例
2020/03/09 Python
HTML实现代码雨源码及效果示例
2020/02/25 HTML / CSS
Feelunique美国:欧洲大型的在线美妆零售电商
2018/11/04 全球购物
大三毕业自我鉴定
2014/01/15 职场文书
搞笑获奖感言
2014/01/30 职场文书
人资专员岗位职责
2014/04/04 职场文书
工伤赔偿协议书
2014/04/15 职场文书
教代会闭幕词
2015/01/28 职场文书
圣诞节开幕词
2015/01/29 职场文书
担保书范文
2019/07/09 职场文书
聊聊JS ES6中的解构
2021/04/29 Javascript
Go语言应该什么情况使用指针
2021/07/25 Golang
python接口测试返回数据为字典取值方式
2022/02/12 Python