php下把数组保存为文件格式的实例应用
发布时间:2020-12-13 05:39:11 所属栏目:PHP教程 来源:网络整理
导读:我使用过两种办法: 第一种是数组序列化,简单,但是调用时比较麻烦一些;第二种是保存为标准的数组格式,保存时麻烦但是调用时简单。 第一种方法: PHP代码 代码如下: $file="./cache/file.cache"; $array = array("color" => array("blue","red","green"),
我使用过两种办法:第一种是数组序列化,简单,但是调用时比较麻烦一些;第二种是保存为标准的数组格式,保存时麻烦但是调用时简单。 第一种方法: 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 = ""if(!defined('CHECK_CODE')) exit('Access Denied');rn". '$'.$var.'='.arrayeval($values). "rn?>"; if(!swritefile($cachefile,$cachetext)) { exit("File: $cachefile write error."); } } //数组转换成字串 function arrayeval($array,$level = 0) { $space = ''; for($i = 0; $i <= $level; $i++) { $space .= "t"; } $evaluate = "Arrayn$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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |