首页 > 资讯列表 > 编程/数据库 >> PHP

php下把数组保存为文件格式的函数

PHP 2014-12-09 04:21:03 转载来源: 网络整理/侵权必删

本文是一个php实现的可以把数组转换为字符串字写入到文件中的代码示例,感兴趣的同学参考下。 我们通常把一些常用的数据保存为数组格式方便调用,同时这也是缓存的重要方法

本文是一个php实现的可以把数组转换为字符串字写入到文件中的代码示例,感兴趣的同学参考下。

我们通常把一些常用的数据保存为数组格式方便调用,同时这也是缓存的重要方法。
我使用过两种办法:
第一种是数组序列化,简单,但是调用时比较麻烦一些;第二种是保存为标准的数组格式,保存时麻烦但是调用时简单。
第一种方法:
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 = "<?phprn".
"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);

 


标签: php 数组 存为 文件 格式 函数


声明:本文内容来源自网络,文字、图片等素材版权属于原作者,平台转载素材出于传递更多信息,文章内容仅供参考与学习,切勿作为商业目的使用。如果侵害了您的合法权益,请您及时与我们联系,我们会在第一时间进行处理!我们尊重版权,也致力于保护版权,站搜网感谢您的分享!

站长搜索

http://www.adminso.com

Copyright @ 2007~2024 All Rights Reserved.

Powered By 站长搜索

打开手机扫描上面的二维码打开手机版


使用手机软件扫描微信二维码

关注我们可获取更多热点资讯

站长搜索目录系统技术支持