-
- $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 = " "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 $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格式:
@include ('./data/data_cache.php');
//数组重新排序
sort($arrayName); |