php将数组存储为文本文件方法汇集
日期:2020-01-09
这篇文章主要介绍了php将数组存储为文本文件的三种方法,每个方法都有利弊,需要的朋友可以参考下
php缓存数组形式的变量,实际上就是将php将数组写入到一个文本文件或者后缀名为.php存储起来,使用的时候直接调用这个文件。那么如何使用php将数组保存为文本格式的文件呢?下面分享三种方法实现将php数组写入到文件以缓存数组。
(1)利用serialize将数组序列化存储为文本文件,调用时候再使用unserialize还原
php缓存数组形式的变量,实际上就是将php将数组写入到一个文本文件或者后缀名为.php存储起来,使用的时候直接调用这个文件。那么如何使用php将数组保存为文本格式的文件呢?下面分享三种方法实现将php数组写入到文件以缓存数组。
(1)利用serialize将数组序列化存储为文本文件,调用时候再使用unserialize还原
<?php $file ='./cache/ecshop.php'; $array = array('color'=> array('blue','red','green'),'size'=> array('small','medium','large')); //缓存 if (false !== fopen($file, 'w+')) { file_put_contents($file, serialize($array)); //写入缓存 } //读出缓存 $handle = fopen($file, 'r'); $cacheArray = unserialize(fread($handle, filesize($file)));(2)自创的将数组保存为标准的数组格式,虽然保存时复杂了点但是调用时简单
<?php
$file = './cache/ecshop.php';
$array = array('color'=> array('blue','red','green'),'size'=> array('small','medium','large'));
cache_write($file, $array, 'rows', false);
//写入
function cache_write($filename, $values, $var = 'rows', $format = false)
{
$cachefile = $filename;
$cachetext = "<?php\r\n".'$'.$var.'='.arrayeval($values, $format).";";
return writefile($cachefile, $cachetext);
}
//数组转换成字串
function arrayeval($array, $format = false, $level = 0)
{
$space = $line = '';
if (!$format)
{
for($i=0; $i <= $level; $i++)
{
$space .= "\t";
}
$line = "\n";
}
$evaluate = 'Array'.$line.$space.'('.$line;
$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,$format,$level+1);
}
else
{
$evaluate .= $comma.$key.'=>'.$val;
}
$comma = ','.$line.$space;
}
$evaluate.=$line.$space.')';
return $evaluate;
}
//写入文件
function writefile($filename, $writetext, $openmod = 'w')
{
if (false !== $fp = fopen($filename, $openmod))
{
flock($fp, 2);
fwrite($fp, $writetext);
fclose($fp);
return true;
}
else
{
return false;
}
}
(3)利用 var_export 将数组直接保存为数组形式存储到文本文件中
<?php
$file = './cache/phone.php';
$array = array('color'=> array('blue','red','green'),'size'=> array('small','medium','large'));
//缓存
$text = '<?php $rows='.var_export($array, true).';';
if (false !== fopen($file, 'w+'))
{
file_put_contents($file, $text);
}
else
{
echo '创建失败';
}本文原创地址:https://ecshopok.com/article-623.html
版权所有 © 转载时必须以链接形式注明出处!
觉得本文对您有用,想收藏下来!方法很简单:请点击-〉
我们一直坚持白天工作、晚上熬夜更新资源,付出了巨大的精力和时间,其中的辛酸难以言述。


暂无评论,来发表一个吧