zoukankan      html  css  js  c++  java
  • [转载]php下把数组保存为文件格式的实例应用

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

    1 $file="./cache/file.cache"; 
    2 $array = array("color" => array("blue", "red", "green"), 
    3 "size" => array("small", "medium", "large")); 
    4 //缓存 
    5 file_put_contents($file,serialize($array));//写入缓存 
    6 //读出缓存 
    7 $handle = fopen($file, "r"); 
    8 $cacheArray = unserialize(fread($handle, filesize ($file))); 

    第二种方法:
    比较复杂,先贴几个函数:

     1 //写入 
     2 function cache_write($name, $var, $values) { 
     3     $cachefile = S_ROOT.'./data/data_'.$name.'.php'; 
     4     $cachetext = "<?php\r\n". 
     5     "if(!defined('CHECK_CODE')) exit('Access Denied');\r\n". 
     6     '$'.$var.'='.arrayeval($values). 
     7     "\r\n?>"; 
     8     if(!swritefile($cachefile, $cachetext)) { 
     9         exit("File: $cachefile write error."); 
    10     } 
    11 } 
    12 //数组转换成字串 
    13 function arrayeval($array, $level = 0) { 
    14     $space = ''; 
    15     for($i = 0; $i <= $level; $i++) { 
    16         $space .= "\t"; 
    17     } 
    18     $evaluate = "Array\n$space(\n"; 
    19     $comma = $space; 
    20     foreach($array as $key => $val) { 
    21         $key = is_string($key) ? '\''.addcslashes($key, '\'\\').'\'' : $key; 
    22         $val = !is_array($val) && (!preg_match("/^\-?\d+$/", $val) || strlen($val) > 12) ? '\''.addcslashes($val, '\'\\').'\'' : $val; 
    23         if(is_array($val)) { 
    24             $evaluate .= "$comma$key => ".arrayeval($val, $level + 1); 
    25         } else { 
    26             $evaluate .= "$comma$key => $val"; 
    27         } 
    28         $comma = ",\n$space"; 
    29     } 
    30     $evaluate .= "\n$space)"; 
    31     return $evaluate; 
    32 } 
    33 //写入文件 
    34 function swritefile($filename, $writetext, $openmod='w') { 
    35     if(@$fp = fopen($filename, $openmod)) { 
    36         flock($fp, 2); 
    37         fwrite($fp, $writetext); 
    38         fclose($fp); 
    39         return true; 
    40     } else { 
    41         runlog('error', "File: $filename write error."); 
    42         return false; 
    43     } 
    44 } 

    调用方法很简单:
    PHP代码

    1 cache_write('file', 'arrayName', $array); 

    使用上形同标准的include格式:

    1 @include ('./data/data_cache.php'); 
    2 //数组重新排序 
    3 sort($arrayName); 

    今天在研究缓存的时候找到这文章,很实用,保留下来以后忘记了什么再来看。

  • 相关阅读:
    成功故事--甩手的故事 《转》
    从李小龙的一句话看程序员是否应该多学几种编程语言
    Windows编程中各种操作文件的方法《转载》
    MFC 属性表单的创建
    MFC 七种数据交换方式--对话框
    如何下载小众电影
    阿里2015前端笔试题
    jquery 20行代码实现简单轮播效果
    CSS定位与浮动
    盒子模型
  • 原文地址:https://www.cnblogs.com/keheng/p/2616850.html
Copyright © 2011-2022 走看看