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侧拉菜单 漂亮,可以向右或者向左展开,支持FF,IE
Oct 15 PHP
php 多线程上下文中安全写文件实现代码
Dec 28 PHP
PHP通用检测函数集合
Feb 08 PHP
php函数array_merge用法一例(合并同类数组)
Feb 03 PHP
PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
Mar 06 PHP
基于xcache的配置与使用详解
Jun 18 PHP
(PHP实现)只使用++运算实现加法,减法,乘法,除法
Jun 27 PHP
PHP读取文件内容后清空文件示例代码
Mar 18 PHP
php url路由入门实例
Apr 23 PHP
CodeIgniter使用smtp服务发送html邮件的方法
Jun 10 PHP
php 读取文件夹下所有图片、文件的实例
Oct 17 PHP
php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析
Apr 20 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 ignore_user_abort与register_shutdown_function 使用方法
2009/06/14 PHP
PHP中shuffle数组值随便排序函数用法
2014/11/21 PHP
php生成二维码
2015/08/10 PHP
php使用CURL模拟GET与POST向微信接口提交及获取数据的方法
2016/09/23 PHP
php实现水印文字和缩略图的方法示例
2016/12/29 PHP
Ubuntu上安装yaf扩展的方法
2018/01/29 PHP
利用PHP扩展Xhprof分析项目性能实践教程
2018/09/05 PHP
用JavaScript实现单继承和多继承的简单方法
2009/03/29 Javascript
打豆豆小游戏 用javascript编写的[打豆豆]小游戏
2013/01/08 Javascript
关于jQuery新的事件绑定机制on()的使用技巧
2013/04/26 Javascript
CSS图片响应式 垂直水平居中
2015/08/14 Javascript
jquery实现叠层3D文字特效代码分享
2015/08/21 Javascript
JavaScript缓冲运动实现方法(2则示例)
2016/01/08 Javascript
理解JavaScript中Promise的使用
2016/01/18 Javascript
Asp.Net之JS生成分页条的方法
2016/11/23 Javascript
微信小程序wx.request的简单封装
2019/11/13 Javascript
Python Django使用forms来实现评论功能
2016/08/17 Python
python读取excel表格生成erlang数据
2017/08/26 Python
使用anaconda的pip安装第三方python包的操作步骤
2018/06/11 Python
简单了解python 邮件模块的使用方法
2019/07/24 Python
如何基于pythonnet调用halcon脚本
2020/01/20 Python
使用Puppeteer爬取微信文章的实现
2020/02/11 Python
Django ModelForm操作及验证方式
2020/03/30 Python
Python自定义sorted排序实现方法详解
2020/09/18 Python
python实现计算图形面积
2021/02/22 Python
联想墨西哥官方网站:Lenovo墨西哥
2016/08/17 全球购物
英国舒适型鞋履品牌:FitFlop
2017/05/17 全球购物
Converse匡威法国官网:美国著名帆布鞋品牌
2018/12/05 全球购物
Notino法国:购买香水和化妆品
2019/04/15 全球购物
Farfetch美国:奢侈品牌时尚购物平台
2019/05/02 全球购物
Schecker荷兰:狗狗用品和配件
2019/06/06 全球购物
Berghaus官网:户外服装和设备,防水服
2020/01/17 全球购物
在阿联酋购买翻新手机和平板电脑:Teckzu
2021/02/12 全球购物
优秀党员事迹材料
2014/12/18 职场文书
绵山导游词
2015/02/05 职场文书
工作年限证明范本
2015/06/15 职场文书