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 相关文章推荐
把从SQL中取出的数据转化成XMl格式
Oct 09 PHP
MySql 按时间段查询数据方法(实例说明)
Nov 02 PHP
php 异常处理实现代码
Mar 10 PHP
php 文本文件的读取效率
Feb 10 PHP
php读取图片内容并输出到浏览器的实现代码
Aug 08 PHP
php foreach循环中使用引用的问题
Nov 06 PHP
PHP操作MySQL的mysql_fetch_* 函数的常见用法教程
Dec 25 PHP
PHP框架Laravel插件Pagination实现自定义分页
Apr 22 PHP
php使用curl实现ftp文件下载功能
May 16 PHP
php根据命令行参数生成配置文件详解
Mar 15 PHP
Vagrant(WSL)+PHPStorm+Xdebu 断点调试环境搭建
Dec 13 PHP
PHP实现简单注册登录系统
Dec 28 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编程网上资源导航
2006/10/09 PHP
一个从别的网站抓取信息的例子(域名查询)
2006/10/09 PHP
Mysql和网页显示乱码解决方法集锦
2008/03/27 PHP
CodeIgniter基于Email类发邮件的方法
2016/03/29 PHP
PHP用continue跳过本次循环中剩余代码的注意点
2017/06/27 PHP
基于PHP-FPM进程池探秘
2017/10/17 PHP
一个支付页面DEMO附截图
2014/07/22 Javascript
Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
Vue.js教程之计算属性
2016/11/11 Javascript
详解Angular.js指令中scope类型的几种特殊情况
2017/02/21 Javascript
JavaScript创建对象_动力节点Java学院整理
2017/06/27 Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
2017/10/26 Javascript
详谈js中标准for循环与foreach(for in)的区别
2017/11/02 Javascript
vue.js项目打包上线的图文教程
2017/11/16 Javascript
详解vue项目的构建,打包,发布全过程
2017/11/23 Javascript
vue项目常用组件和框架结构介绍
2017/12/24 Javascript
微信小程序实现tab左右切换效果
2020/11/15 Javascript
layui实现显示数据表格、搜索和修改功能示例
2020/06/03 Javascript
[02:17]2016国际邀请赛中国区预选赛VG战队领队采访
2016/06/26 DOTA
简单介绍Python的Tornado框架中的协程异步实现原理
2015/04/23 Python
Python3.4学习笔记之列表、数组操作示例
2019/03/01 Python
使用Python和Scribus创建一个RGB立方体的方法
2019/07/17 Python
djano一对一、多对多、分页实例代码
2019/08/16 Python
python语言实现贪吃蛇游戏
2020/11/13 Python
澳大利亚在线性感内衣商店:Fantasy Lingerie
2021/02/07 全球购物
Linux如何为某个操作添加别名
2015/02/05 面试题
大学社团活动策划书
2014/01/26 职场文书
司法局火灾防控方案
2014/06/05 职场文书
2014国庆节主题活动方案:快乐的国庆节
2014/09/16 职场文书
办公室主任个人总结
2015/02/28 职场文书
综合素质自我评价评语
2015/03/06 职场文书
互联网的下一个风口:新的独角兽将诞生
2019/08/02 职场文书
2019个人工作自我评价范文(3篇)
2019/09/19 职场文书
python 通过使用Yolact训练数据集
2021/04/06 Python
MySQL数据库超时设置配置的方法实例
2021/10/15 MySQL
MySQL创建管理KEY分区
2022/04/13 MySQL