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 管理系统程序中的后门
Aug 05 PHP
php csv操作类代码
Dec 14 PHP
PHP数组内存耗用太多问题的解决方法
Apr 05 PHP
PHP表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
Aug 22 PHP
分割GBK中文遭遇乱码的解决方法
Aug 09 PHP
php短址转换实现方法
Feb 25 PHP
php对文件进行hash运算的方法
Apr 03 PHP
php生成PDF格式文件并且加密
Jun 22 PHP
PHP使用pear实现mail发送功能 windows环境下配置pear
Apr 15 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
May 20 PHP
laravel中的一些简单实用功能
Nov 03 PHP
PHP正则判断一个变量是否为正整数的方法
Feb 27 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
mac下Apache + MySql + PHP搭建网站开发环境
2014/06/02 PHP
PHP创建word文档的方法(平台无关)
2016/03/29 PHP
探究Laravel使用env函数读取环境变量为null的问题
2016/12/06 PHP
关于PHP通用返回值设置方法
2017/03/31 PHP
PHP实现执行外部程序的方法详解
2017/08/17 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
jQuery前台数据获取实现代码
2011/03/16 Javascript
Javascript实现简单二级下拉菜单实例
2014/06/15 Javascript
Angularjs基础知识及示例汇总
2015/01/22 Javascript
Redis基本知识、安装、部署、配置笔记
2015/03/05 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
2016/08/01 Javascript
AngularJS报错$apply already in progress的解决方法分析
2017/01/30 Javascript
微信小程序实现皮肤功能(夜间模式)
2017/06/18 Javascript
javascript流程控制语句集合
2017/09/18 Javascript
select标签设置默认选中的选项方法
2018/03/02 Javascript
nodejs之koa2请求示例(GET,POST)
2018/08/07 NodeJs
详解小程序输入框闪烁及重影BUG解决方案
2018/08/31 Javascript
javascript实现计算指定范围内的质数示例
2018/12/29 Javascript
layui导出所有数据的例子
2019/09/10 Javascript
javascript实现获取中文汉字拼音首字母
2020/05/19 Javascript
Vue如何基于vue-i18n实现多国语言兼容
2020/07/17 Javascript
微信小程序实现拼图小游戏
2020/10/22 Javascript
jquery实现拖拽添加元素功能
2020/12/01 jQuery
[04:22]DSPL第二期精彩集锦:残血反杀!
2014/12/10 DOTA
wxPython中listbox用法实例详解
2015/06/01 Python
Python中对象迭代与反迭代的技巧总结
2016/09/17 Python
python连接数据库的方法
2017/10/19 Python
Random 在 Python 中的使用方法
2018/08/09 Python
10招!看骨灰级Pythoner玩转Python的方法
2019/04/15 Python
Pandas-Cookbook 时间戳处理方式
2019/12/07 Python
flask项目集成swagger的方法
2020/12/09 Python
运动会通讯稿200字
2014/02/16 职场文书
2014年班组长工作总结
2014/11/20 职场文书
出纳岗位职责
2015/01/31 职场文书
职场新人知识:如何制定一份合理的工作计划?
2019/09/11 职场文书
梳理总结Python开发中需要摒弃的18个坏习惯
2022/01/22 Python