加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读