PHP程序缓存之文件缓存处理方式
PHP程序缓存之文件缓存处理方式
在开发程序过程中,缓存的设置大大提升程序效率,减小数据库负载。
基本配置缓存和常规配置缓存
基本配置缓存在项目开发中类似这样子的格式:
文件:config.php
$CFG['database'] = 'mysql'; $CFG['pconnect'] = '0'; $CFG['db_host'] = 'localhost'; $CFG['db_name'] = 'appcom'; $CFG['db_user'] = 'root'; $CFG['db_pass'] = '123456'; $CFG['db_charset'] = 'utf8';
常规配置缓存类似这样的:例如文件x.php
return array ( 'a'=>'','b'=>'','c'=>'','d'=>'', 'aa'=>array('x'=>'','y'=>,'z'=>''), 'bb'=>array('x'=>'','y'=>,'z'=>''), 'cc'=>array('x'=>'','y'=>,'z'=>''));
缓存配置程序代码:
基本配置的更新:
$tmp = file_get('config.inc.php'); foreach($setting as $k=>$v) { $tmp = preg_replace("/[$]CFG\['$k'\]\s*\=\s*[\"'].*?[\"']/is", "\$CFG['$k'] = '$v'", $tmp);
常规配置的更新:例如文件名为y.php
cache_write('y.php', $setting); function cache_write($file, $string, $dir = '') { if(is_array($string)) $string = "<?php defined('IN_KELE') or exit('Access Denied'); return ".strip_nr(var_export($string, true))."; ?>"; $file = $file; $strlen = file_put($file, $string); return $strlen; } function strip_nr($string, $js = false) { $string = str_replace(array(chr(13), chr(10), "\n", "\r", "\t", ' '),array('', '', '', '', '', ''), $string); if($js) $string = str_replace("'", "\'", $string); return $string; } function file_put($filename, $data) { $phpServer=strpos(strtoupper(PHP_OS), 'WIN') !== false ? true: false; dir_create(dirname($filename)); if(@$fp = fopen($filename, 'wb')) { flock($fp, LOCK_EX); $len = fwrite($fp, $data); flock($fp, LOCK_UN); fclose($fp); if($phpServer) @chmod($filename, $phpServer); return $len; } else { return false; } } function file_get($filename) { return @file_get_contents($filename); }
微信号:tieniu6636
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类