天天看點

php如何将數組儲存為檔案的方法

  1. 直接用

    var_export

    寫成

    return array(...);

    的php代碼,然後讀取的時候用

    require

    解析即可。
  2. 使用

    serialize

    函數序列化一個數組,然後讀取的時候用

    unserialize

    反序列化
  3. 使用

    json_encode

    序列化一個數組,然後讀取的時候用

    json_decode

    反序列化
  4. 使用其它的檔案格式,比如

    yaml

    或者

    ini

//寫入 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;     } }