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 4.2书写安全的脚本
Oct 09 PHP
php统计文件大小,以GB、MB、KB、B输出
May 29 PHP
如何在symfony中导出为CSV文件中的数据
Oct 06 PHP
基于php验证码函数的使用示例
May 03 PHP
PHP文件大小格式化函数合集
Mar 10 PHP
PHP字符串比较函数strcmp()和strcasecmp()使用总结
Nov 19 PHP
php面向对象与面向过程两种方法给图片添加文字水印
Aug 26 PHP
PHP检测链接是否存在的代码实例分享
May 06 PHP
smarty模板数学运算示例
Dec 11 PHP
php 访问oracle 存储过程实例详解
Jan 08 PHP
thinkphp3.2中实现phpexcel导出带生成图片示例
Feb 14 PHP
PHP中“=&gt;
Mar 01 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
Session服务器配置指南与使用经验的深入解析
2013/06/17 PHP
请离开include_once和require_once
2013/07/18 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
2014/09/23 PHP
PHP使用in_array函数检查数组中是否存在某个值
2015/03/25 PHP
PDO::errorCode讲解
2019/01/28 PHP
laravel-admin自动生成模块,及相关基础配置方法
2019/10/08 PHP
PHP代码加密的方法总结
2020/03/13 PHP
jQuery EasyUI API 中文文档 - DataGrid数据表格
2011/11/17 Javascript
CodeMirror2 IE7/IE8 下面未知运行时错误的解决方法
2012/03/29 Javascript
使用闭包对setTimeout进行简单封装避免出错
2013/07/10 Javascript
javascript去掉前后空格的实例
2013/11/07 Javascript
jquery解析xml字符串简单示例
2014/04/11 Javascript
javascript实现网页屏蔽Backspace事件,输入框不屏蔽
2015/07/21 Javascript
EditPlus 正则表达式 实战(3)
2016/12/15 Javascript
详解Vue组件实现tips的总结
2017/11/01 Javascript
vue-cli3.0 脚手架搭建项目的过程详解
2018/10/19 Javascript
js实现飞机大战游戏
2020/08/26 Javascript
[02:19]DOTA2上海特级锦标赛 观赛指南 Spectator Guide
2016/02/04 DOTA
Python中返回字典键的值的values()方法使用
2015/05/22 Python
matplotlib作图添加表格实例代码
2018/01/23 Python
Python采集代理ip并判断是否可用和定时更新的方法
2018/05/07 Python
python安装requests库的实例代码
2019/06/25 Python
python 进程的几种创建方式详解
2019/08/29 Python
python Opencv计算图像相似度过程解析
2019/12/03 Python
Python虚拟环境venv用法详解
2020/05/25 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
2020/12/29 Python
html5 canvas实现圆形时钟代码分享
2013/12/25 HTML / CSS
LTD Commodities:礼品,独特发现,家居装饰,家用器皿
2017/08/11 全球购物
街头时尚在线:JESSICABUURMAN
2019/06/16 全球购物
毕业生多媒体设计求职信
2013/10/12 职场文书
水务局局长岗位职责
2013/11/28 职场文书
铁路安全事故反思
2014/04/26 职场文书
2014年全国爱牙日宣传活动方案
2014/09/21 职场文书
文员岗位职责范本
2015/04/16 职场文书
2016党风廉政建设心得体会范文
2016/01/25 职场文书
浅谈Python数学建模之数据导入
2021/06/23 Python