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上传图片重命名的6种解决方法的详细介绍
Apr 28 PHP
php用正则表达式匹配URL的简单方法
Nov 12 PHP
Php连接及读取和写入mysql数据库的常用代码
Aug 11 PHP
php中限制ip段访问、禁止ip提交表单的代码分享
Aug 22 PHP
跟我学Laravel之视图 &amp; Response
Oct 15 PHP
php模拟登陆的实现方法分析
Jan 09 PHP
PHP 自动加载的简单实现(推荐)
Aug 12 PHP
php简单统计中文个数的方法
Sep 30 PHP
PHP利用Cookie设置用户30分钟未操作自动退出功能
Jul 03 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
Nov 13 PHP
php使用pecl方式安装扩展操作示例
Aug 12 PHP
Laravel服务容器绑定的几种方法总结
Jun 14 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原理的opcodes(操作码)
2010/10/26 PHP
微信公众平台开发实现2048游戏的方法
2015/04/15 PHP
php查询whois信息的方法
2015/06/08 PHP
php写app接口并返回json数据的实例(分享)
2017/05/20 PHP
php实现解析xml并生成sql语句的方法
2018/02/03 PHP
Laravel自定义 封装便捷返回Json数据格式的引用方法
2019/09/29 PHP
jQuery EasyUI API 中文文档 - Tabs标签页/选项卡
2011/10/01 Javascript
js Function类型
2011/12/04 Javascript
jQuery在IE下使用未闭合的xml代码创建元素时的Bug介绍
2012/01/10 Javascript
删除javascript中注释语句的正则表达式
2014/06/11 Javascript
Backbone.js的Hello World程序实例
2015/06/19 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
2015/10/02 Javascript
js传值后台中文出现乱码的解决方法
2016/06/30 Javascript
AngularJS自定义控件实例详解
2016/12/13 Javascript
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
js实现鼠标拖拽多选功能示例
2017/08/01 Javascript
node.js博客项目开发手记
2018/03/16 Javascript
js中事件对象和事件委托的介绍
2019/01/21 Javascript
微信小程序动态显示项目倒计时
2019/06/20 Javascript
Nodejs在局域网配置https访问的实现方法
2020/10/17 NodeJs
pycharm 在windows上编辑代码用linux执行配置的方法
2018/10/27 Python
Python多进程方式抓取基金网站内容的方法分析
2019/06/03 Python
Python配置文件处理的方法教程
2019/08/29 Python
Python数据分析模块pandas用法详解
2019/09/04 Python
Windows10下 python3.7 安装 facenet的教程
2019/09/10 Python
Python的形参和实参使用方式
2019/12/24 Python
django正续或者倒序查库实例
2020/05/19 Python
Keras自定义实现带masking的meanpooling层方式
2020/06/16 Python
Python fileinput模块如何逐行读取多个文件
2020/10/05 Python
美国南加州的原创极限运动潮牌:Vans(范斯)
2016/08/05 全球购物
皇家道尔顿官网:Royal Doulton
2017/12/06 全球购物
个人求职信范文分享
2013/12/13 职场文书
小学生学习雷锋倡议书
2014/05/15 职场文书
个人简历自荐信
2014/06/26 职场文书
领导班子作风建设剖析材料
2014/10/11 职场文书
银行资信证明
2015/06/17 职场文书