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正则
Jul 07 PHP
兼容PHP5的PHP目录管理函数库
Jul 10 PHP
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
Dec 19 PHP
PHP中根据IP地址判断城市实现城市切换或跳转代码
Sep 04 PHP
php页面消耗内存过大的处理办法
Mar 18 PHP
解析在PHP中使用mysqli扩展库对mysql的操作
Jul 03 PHP
两种设置php载入页面时编码的方法
Jul 29 PHP
PHP框架Laravel学习心得体会
Oct 28 PHP
详解php魔术方法(Magic methods)的使用方法
Feb 14 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
Jun 16 PHP
PHP使用标准库spl实现的观察者模式示例
Aug 04 PHP
Apache+PHP+MySQL搭建PHP开发环境图文教程
Aug 06 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编程中字符串处理的5个技巧小结
2007/11/13 PHP
PHP函数microtime()用法与说明
2013/12/04 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
2015/12/17 PHP
PHP编程基本语法快速入门手册
2016/01/07 PHP
php让json_encode不自动转义斜杠“/”的方法
2020/04/27 PHP
Javascript打印网页部分内容的脚本
2008/11/17 Javascript
js获取通过ajax返回的map型的JSONArray的方法
2014/01/09 Javascript
jQuery ajax serialize() 方法使用示例
2014/11/02 Javascript
JavaScript中的cacheStorage使用详解
2015/07/29 Javascript
浅谈Javascript中Object与Function对象
2015/09/26 Javascript
jQuery实现验证年龄简单思路
2016/02/24 Javascript
node.js微信公众平台开发教程
2016/03/04 Javascript
使用jquery提交form表单并自定义action的实现代码
2016/05/25 Javascript
使用JavaScript触发过渡效果的方法
2017/01/19 Javascript
基于bootstrap实现收缩导航条
2017/03/17 Javascript
vue.js编译时给生成的文件增加版本号
2018/09/17 Javascript
浅谈bootstrap layer.open中end的使用方法
2019/09/12 Javascript
JavaScript中的函数式编程详解
2020/08/22 Javascript
使用Python的Flask框架构建大型Web应用程序的结构示例
2016/06/04 Python
浅谈flask截获所有访问及before/after_request修饰器
2018/01/18 Python
不管你的Python报什么错,用这个模块就能正常运行
2018/09/14 Python
pyqt5使用按钮进行界面的跳转方法
2019/06/19 Python
python multiprocessing多进程变量共享与加锁的实现
2019/10/02 Python
树莓派极简安装OpenCv的方法步骤
2019/10/10 Python
Python+Selenium+phantomjs实现网页模拟登录和截图功能(windows环境)
2019/12/11 Python
Mac中PyCharm配置Anaconda环境的方法
2020/03/04 Python
Python-jenkins模块获取jobs的执行状态操作
2020/05/12 Python
python怎么自定义捕获错误
2020/06/29 Python
详解CSS3+JS完美实现放大镜模式
2020/12/03 HTML / CSS
世界上最悠久的自行车制造商:Ribble Cycles
2017/03/18 全球购物
Guess欧洲官网:美国服饰品牌
2019/08/06 全球购物
浙江文明网签名寄语
2014/01/18 职场文书
自主招生教师推荐信
2014/05/10 职场文书
Vue2.0搭建脚手架
2022/03/13 Vue.js
Python必备技巧之函数的使用详解
2022/04/04 Python
MySQL分区路径子分区再分区
2022/04/13 MySQL