php将数组存储为文本文件方法汇集

这篇文章主要介绍了php将数组存储为文本文件的三种方法,每个方法都有利弊,需要的朋友可以参考下
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
版权所有 © 转载时必须以链接形式注明出处!

觉得本文对您有用,想收藏下来!方法很简单:请点击-〉
我们一直坚持白天工作、晚上熬夜更新资源,付出了巨大的精力和时间,其中的辛酸难以言述。

文章评论

暂无评论,来发表一个吧

发表 取消
ECSHOP插件网微信客服edait_cn

最新下载动态