欢迎您来到懒之才-站长的分享平台!   学会偷懒,并懒出境界是提高工作效率最有效的方法!
首页 > 经验分享 > PHP > PHP数组转化为文件的实例代码

PHP数组转化为文件的实例代码

2018-06-20 654 收藏 0 赞一个 0 真差劲 0 去评论

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

第一种方法:

$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 = "<?php\r\n". 
    "if(!defined('CHECK_CODE')) exit('Access Denied');\r\n". 
    '$'.$var.'='.arrayeval($values). 
    "\r\n?>"; 
    if(!swritefile($cachefile, $cachetext)) { 
        exit("File: $cachefile write error."); 
    } 
} 
//数组转换成字串 
function arrayeval($array, $level = 0) { 
    $space = ''; 
    for($i = 0; $i <= $level; $i++) { 
        $space .= "\t"; 
    } 
    $evaluate = "Array\n$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; 
    } 
}

调用方法很简单:

cache_write('file', 'arrayName', $array); 
//或使用下列形式:
@include ('./data/data_cache.php'); 
//数组重新排序 
sort($arrayName);


一、推荐使用迅雷或快车等多线程下载软件下载本站资源。

二、未登录会员无法下载,登录后可获得更多便利功能,若未注册,请先注册。

三、如果服务器暂不能下载请稍后重试!总是不能下载,请点我报错 ,谢谢合作!

四、本站大部分资源是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站将不对任何资源负法律责任.如果您发现本站有部分资源侵害了您的权益,请速与我们联系,我们将尽快处理.

五、如有其他问题,请加网站设计交流群(点击这里查看交流群 )进行交流。

六、如需转载本站资源,请注明转载来自并附带链接

七、本站部分资源为加密压缩文件,统一解压密码为:www.aizhanzhe.com

大家评论