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 定界符 使用技巧
Jun 14 PHP
jQuery EasyUI API 中文文档 - DateBox日期框
Oct 15 PHP
phpmyadmin config.inc.php配置示例
Aug 27 PHP
PHP防止post重复提交数据的简单例子
Jun 07 PHP
本地计算机无法启动Apache故障处理
Aug 08 PHP
PHP向浏览器输出内容的4个函数总结
Nov 17 PHP
Yii框架在页面输出执行sql语句以方便调试的实现方法
Dec 24 PHP
php实现遍历目录并删除指定文件中指定内容
Jan 21 PHP
PHP中的socket_read和socket_recv区别详解
Feb 09 PHP
phpcms的分类名称和类别名称的调用
Jan 05 PHP
PHP调用API接口实现天气查询功能的示例
Sep 21 PHP
基于 Swoole 的微信扫码登录功能实现代码
Jan 15 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设计模式小结
2013/02/15 PHP
JavaScript的变量作用域深入理解
2009/10/25 Javascript
Js获取下拉框选定项的值和文本的实现代码
2014/02/26 Javascript
JavaScript验证图片类型(扩展名)的函数分享
2014/05/05 Javascript
JS实现可关闭的对联广告效果代码
2015/09/14 Javascript
第九章之路径分页标签与徽章组件
2016/04/25 Javascript
深入理解jquery中extend的实现
2016/12/22 Javascript
jQuery弹出层插件popShow用法示例
2017/01/23 Javascript
Javascript中的神器——Promise
2017/02/08 Javascript
微信小程序开发之从相册获取图片 使用相机拍照 本地图片上传
2017/04/18 Javascript
JS switch判断 三目运算 while 及 属性操作代码
2017/09/03 Javascript
mongoose更新对象的两种方法示例比较
2017/12/19 Javascript
安装vue-cli的简易过程
2018/05/22 Javascript
详解Eslint 配置及规则说明
2018/09/10 Javascript
使用vue2实现带地区编号和名称的省市县三级联动效果
2018/11/05 Javascript
js实现3D粒子酷炫动态旋转特效
2020/09/13 Javascript
Python实现设置windows桌面壁纸代码分享
2015/03/28 Python
使用相同的Apache实例来运行Django和Media文件
2015/07/22 Python
详解Python 模拟实现生产者消费者模式的实例
2017/08/10 Python
Python实现求笛卡尔乘积的方法
2017/09/16 Python
python使用Pycharm创建一个Django项目
2018/03/05 Python
django中SMTP发送邮件配置详解
2019/07/19 Python
Windows10下 python3.7 安装 facenet的教程
2019/09/10 Python
Python 3.8正式发布,来尝鲜这些新特性吧
2019/10/15 Python
教你如何一步一步用Canvas写一个贪吃蛇
2018/10/22 HTML / CSS
美国首屈一指的礼品篮供应商:GiftTree
2018/01/06 全球购物
PREMIUM-MALL法国:行李、箱包及配件在线
2019/05/30 全球购物
Java的五个基础面试题
2016/02/26 面试题
土木工程毕业生自荐信
2013/09/21 职场文书
管理部部长岗位职责
2013/12/05 职场文书
党员对照检查材料整改措施思想汇报
2014/09/26 职场文书
考试作弊检讨书
2014/10/21 职场文书
中学生综合素质自我评价
2015/03/06 职场文书
试用期转正工作总结2015
2015/05/28 职场文书
Pytorch 如何实现常用正则化
2021/05/27 Python
Lombok的详细使用及优缺点总结
2021/07/15 Java/Android