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 21 PHP
PHP 处理图片的类实现代码
Oct 23 PHP
利用Ffmpeg获得flv视频缩略图和视频时间的代码
Sep 15 PHP
php数组函数序列之in_array() - 查找数组中是否存在指定值
Nov 07 PHP
php 下载保存文件保存到本地的两种实现方法
Aug 12 PHP
Thinkphp中数据按分类嵌套循环实现方法
Oct 30 PHP
php强制运行广告的方法
Dec 01 PHP
如何用PHP来实现一个动态Web服务器
Jul 29 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
Sep 22 PHP
thinkPHP中验证码的简单实现方法
Dec 05 PHP
PHP实现电商订单自动确认收货redis队列
May 17 PHP
laravel5 Eloquent 实现事务方式
Oct 21 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的FTP学习(三)
2006/10/09 PHP
php smarty函数扩展
2010/03/15 PHP
ThinkPHP CURD方法之field方法详解
2014/06/18 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
2016/07/25 PHP
php版本CKEditor 4和CKFinder安装及配置方法图文教程
2019/06/05 PHP
XENON基于JSON变种
2010/07/27 Javascript
js禁止页面复制功能禁用页面右键菜单示例代码
2013/08/29 Javascript
javascript 判断字符串是否包含某字符串及indexOf使用示例
2013/10/18 Javascript
JS实现alert中显示换行的方法
2015/12/17 Javascript
jQuery模拟select实现下拉菜单功能
2016/06/20 Javascript
JavaScript中cookie工具函数封装的示例代码
2016/10/11 Javascript
jQuery中checkbox反复调用attr('checked', true/false)只有第一次生效的解决方法
2016/11/16 Javascript
常用JS图片滚动(无缝、平滑、上下左右滚动)代码大全(推荐)
2016/12/20 Javascript
详解Vue方法与事件
2017/03/09 Javascript
ES6新特性之Symbol类型用法分析
2017/03/31 Javascript
不得不看之JavaScript构造函数及new运算符
2017/08/21 Javascript
JavaScript事件委托原理与用法实例分析
2018/06/07 Javascript
VUE接入腾讯验证码功能(滑块验证)备忘
2019/05/07 Javascript
JavaScript如何把两个数组对象合并过程解析
2019/10/10 Javascript
微信小程序 bindtap 传参的实例代码
2020/02/21 Javascript
Python实现的下载8000首儿歌的代码分享
2014/11/21 Python
Python的类实例属性访问规则探讨
2015/01/30 Python
详细解析Python中的变量的数据类型
2015/05/13 Python
使用Python读写文本文件及编写简单的文本编辑器
2016/03/11 Python
Pycharm设置去除显示的波浪线方法
2018/10/28 Python
Python实现朴素贝叶斯的学习与分类过程解析
2019/08/24 Python
python爬虫工具例举说明
2020/11/30 Python
Python爬虫之Selenium下拉框处理的实现
2020/12/04 Python
可持续木材、生态和铝制太阳镜:Proof Eyewear
2019/07/24 全球购物
司马光教学反思
2014/02/01 职场文书
小学一年级学生评语
2014/04/22 职场文书
安全生产计划书
2014/05/04 职场文书
机械电子工程专业自荐书
2014/06/10 职场文书
机关干部纪律作风整顿心得体会
2016/01/23 职场文书
800字作文之大雪
2019/12/04 职场文书
基于python定位棋子位置及识别棋子颜色
2021/07/26 Python