php下把数组保存为文件格式的实例应用
php下把数组保存为文件格式的实例应用
发布时间:2016-12-29 来源:查字典编辑
摘要:我使用过两种办法:第一种是数组序列化,简单,但是调用时比较麻烦一些;第二种是保存为标准的数组格式,保存时麻烦但是调用时简单。第一种方法:PH...

我使用过两种办法:

第一种是数组序列化,简单,但是调用时比较麻烦一些;第二种是保存为标准的数组格式,保存时麻烦但是调用时简单。

第一种方法:

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教程学习
热门php教程学习
编程开发子分类