function ckarrayeval($array, $level = 0) { if (!is_array($array)) { return "\"" . $array . "\""; } if (is_array($array) && function_exists('var_export')) { return var_export($array, true); } $space = ''; for ($i = 0; $i <= $level; $i++) { $space .= "\t"; } $evaluate = "Array\n{$space}(\n"; $comma = $space; if (is_array($array)) { foreach ($array as $key => $val) { $key = is_string($key) ? '\'' . addcslashes($key, '\'\\') . '\'' : $key; //转换 $val = !is_array($val) && (!preg_match("/^\\-?[1-9]\\d*\$/", $val) || strlen($val) > 12) ? '\'' . addcslashes($val, '\'\\') . '\'' : $val; //转换 if (is_array($val)) { $evaluate .= "{$comma}{$key} => " . ckarrayeval($val, $level + 1); } else { //$val = addslashes($val); $evaluate .= "{$comma}{$key} => \"{$val}\""; } $comma = ",\n{$space}"; } } $evaluate .= "\n{$space})"; return $evaluate; }
function set($key, $value, $ttl = 0) { if (!$key) { return false; } $cache_file = $this->_get_cache_path($key); $cache_data = "<?php\r\n/**\r\n * @Created By FEILIU PhpFileCacheServer\r\n * @Time:" . date('Y-m-d H:i:s') . "\r\n */"; $cache_data .= $this->_get_expire_condition(intval($ttl)); $cache_data .= "\r\nreturn " . ckarrayeval($value) . ";\r\n"; $cache_data .= "\r\n?>"; @chmod($cache_file, 0777); return file_put_contents($cache_file, $cache_data, LOCK_EX); }