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 相关文章推荐
人大复印资料处理程序_输入篇
Oct 09 PHP
第十五节--Zend引擎的发展
Nov 16 PHP
实用函数7
Nov 08 PHP
php header示例代码(推荐)
Sep 08 PHP
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
Jun 01 PHP
PHP中include与require使用方法区别详解
Oct 19 PHP
PHP json_decode函数详细解析
Feb 17 PHP
php格式化金额函数分享
Feb 02 PHP
PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】
Mar 27 PHP
浅谈laravel框架与thinkPHP框架的区别
Oct 23 PHP
PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析
Dec 11 PHP
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
Feb 10 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应用程序来获取Web服务器的状态信息
2006/10/09 PHP
php实现memcache缓存示例讲解
2013/12/04 PHP
PHP实现搜索地理位置及计算两点地理位置间距离的实例
2016/01/08 PHP
PHP中功能强大却很少使用的函数实例小结
2016/11/10 PHP
PHP命名空间namespace及use的简单用法分析
2018/08/03 PHP
精心挑选的15款优秀jQuery 本特效插件和教程
2012/08/06 Javascript
表头固定(利用jquery实现原理介绍)
2012/11/08 Javascript
js获取php变量的实现代码
2013/08/10 Javascript
SeaJS入门教程系列之SeaJS介绍(一)
2014/03/03 Javascript
js获取ajax返回值代码
2014/04/30 Javascript
ExtJS4给Combobox设置列表中的默认值示例
2014/05/02 Javascript
基于Bootstrap实现tab标签切换效果
2020/04/15 Javascript
全面解析Bootstrap中scrollspy(滚动监听)的使用方法
2016/06/06 Javascript
微信小程序 数据封装,参数传值等经验分享
2017/01/09 Javascript
详解nodeJS之二进制buffer对象
2017/06/03 NodeJs
荐书|您有一份JavaScript书单待签收
2017/07/21 Javascript
javascript基于牛顿迭代法实现求浮点数的平方根【递归原理】
2017/09/28 Javascript
vue2.0 element-ui中el-select选择器无法显示选中的内容(解决方法)
2018/08/24 Javascript
JS函数节流和防抖之间的区分和实现详解
2019/01/11 Javascript
js删除数组中某几项的方法总结
2019/01/16 Javascript
js比较两个单独的数组或对象是否相等的实例代码
2019/04/28 Javascript
JavaScript 常见的继承方式汇总
2020/09/17 Javascript
pandas实现选取特定索引的行
2018/04/20 Python
java中两个byte数组实现合并的示例
2018/05/09 Python
详解Python 解压缩文件
2019/04/09 Python
Python3.5面向对象与继承图文实例详解
2019/04/24 Python
python 扩展print打印文件路径和当前时间信息的实例代码
2019/10/11 Python
Python smtp邮件发送模块用法教程
2020/06/15 Python
canvas简单连线动画的实现代码
2020/02/04 HTML / CSS
北京麒麟网信息技术有限公司网络游戏测试面试题
2013/09/28 面试题
大学生志愿者感言
2014/01/15 职场文书
进步之星获奖感言
2014/02/22 职场文书
四议两公开实施方案
2014/03/28 职场文书
煤矿班组长竞聘书
2014/03/31 职场文书
反四风对照检查材料思想汇报
2014/09/16 职场文书
小学三八妇女节活动总结
2015/02/06 职场文书