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和MySQL保存和输出图片
Oct 09 PHP
PHP4实际应用经验篇(9)
Oct 09 PHP
一个取得文件扩展名的函数
Oct 09 PHP
php生成的html meta和link标记在body标签里 顶部有个空行
May 18 PHP
PHPMailer邮件发送的实现代码
May 04 PHP
ThinkPHP CURD方法之where方法详解
Jun 18 PHP
在win7中搭建Linux+PHP 开发环境
Oct 08 PHP
php文件操作相关类实例
Jun 18 PHP
PHP实现的mysql主从数据库状态检测功能示例
Jul 20 PHP
解决laravel(5.5)访问public报错的问题
Oct 12 PHP
PHP unset函数原理及使用方法解析
Aug 14 PHP
Laravel中GraphQL接口请求频率实战记录
Sep 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
PHP 数字左侧自动补0
2008/03/31 PHP
PHP获取当前相对于域名目录的方法
2015/06/26 PHP
PHP Imagick完美实现图片裁切、生成缩略图、添加水印
2016/02/22 PHP
PHP进行批量任务处理不超时的解决方法
2016/07/11 PHP
php+jQuery+Ajax简单实现页面异步刷新
2016/08/08 PHP
mysql查找删除重复数据并只保留一条实例详解
2016/09/24 PHP
PHP PDOStatement::fetchAll讲解
2019/01/31 PHP
PHP chunk_split()函数讲解
2019/02/12 PHP
PHP微信网页授权的配置文件操作分析
2019/05/29 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
YUI 读码日记之 YAHOO.util.Dom - Part.1
2008/03/22 Javascript
javascript 尚未实现错误解决办法
2008/11/27 Javascript
javascript基础第一章 JavaScript与用户端
2010/07/22 Javascript
只需20行代码就可以写出CSS覆盖率测试脚本
2013/04/24 Javascript
JS获取select-option-text_value的方法
2013/12/26 Javascript
简单了解Backbone.js的Model模型以及View视图的源码
2016/02/14 Javascript
jQuery在ie6下无法设置select选中的解决方法详解
2016/09/20 Javascript
js style.display=block显示布局错乱问题的解决方法
2016/09/21 Javascript
vue使用axios时关于this的指向问题详解
2017/12/22 Javascript
React Native悬浮按钮组件的示例代码
2018/04/05 Javascript
ng-events类似ionic中Events的angular全局事件
2018/09/05 Javascript
NodeJS和浏览器中this关键字的不同之处
2021/03/03 NodeJs
[19:15]DK战队纪录片
2014/09/02 DOTA
[53:52]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python实现注册登录系统
2017/08/08 Python
Python底层封装实现方法详解
2020/01/22 Python
英国内衣连锁店:Boux Avenue
2018/01/24 全球购物
马德里运动鞋商店:Nigra Mercato
2020/02/16 全球购物
size?荷兰官方网站:英国高级运动鞋精品店
2020/07/24 全球购物
市场营销工作计划书
2014/05/06 职场文书
讲党性心得体会
2014/09/03 职场文书
就业协议书
2014/09/12 职场文书
司法局2014法制宣传日活动总结
2014/11/01 职场文书
2015年关爱留守儿童工作总结
2015/05/22 职场文书
小学运动会加油词
2015/07/18 职场文书
《吃水不忘挖井人》教学反思
2016/02/22 职场文书