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);
}
PHP程序缓存之文件缓存处理方式的更多相关文章
- [Android]异步加载图片,内存缓存,文件缓存,imageview显示图片时增加淡入淡出动画
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3574131.html 这个可以实现ImageView异步加载 ...
- app缓存设计-文件缓存
采用缓存,可以进一步大大缓解数据交互的压力,又能提供一定的离线浏览.下边我简略列举一下缓存管理的适用环境: 1. 提供网络服务的应用 2. 数据更新不需要实时更新,哪怕是3-5分钟的延迟也是可以采用缓 ...
- .net 缓存之文件缓存依赖
CaCheHelp 类中代码如下: #region 根据键从缓存中读取保持的数据 /// <summary> /// 根据键从缓存中读取保持的数据 /// </summary> ...
- thinkphp3.2配置redis缓存和文件缓存
如果把一些常用但又不容易变的数据存缓存,而不是每次查数据库,这样能很大减轻数据库压力 最近由于项目需要,就尝试了一把redis,但是后面又用了tp3.2的文件缓存,直接进入主题: 在config.ph ...
- Android应用程序文件缓存getCacheDir()和getExternalCacheDir()
如果Android引用程序需要缓存临时文件,系统提供了一个可管理的“内部缓存”和一个不可管理的“外部缓存”,分别调用getCacheDir()和getExternalCacheDir()方法,可以从当 ...
- Discuz!NT静态文件缓存(SQUID)
在目前最新版本的产品中,我们提供了缓存静态文件的解决方案,就是使用SQUID做静态前端,将论坛中的大部分静态文件布署或外链到一个新的HTTP链接上,其中可以外链的静态文件包括: 1.Disc ...
- Asp.net文件缓存依赖
Asp.net文件缓存依赖 using System; using System.Collections.Generic; using System.Linq; using System.Web; u ...
- 怎么用php语言来做文件缓存
使用缓存能够让我们的程序访问起来更加快速,缓存可以减少对数据库的操作,体验起来更好一些,对服务器的压力也小一些,当然服务速度很快 php文件执行完之后产生的解析完的数据,保存成静态的网页,下次打开的这 ...
- $.ajax()方法详解 ajax之async属性 【原创】详细案例解剖——浅谈Redis缓存的常用5种方式(String,Hash,List,set,SetSorted )
$.ajax()方法详解 jquery中的ajax方法参数总是记不住,这里记录一下. 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为Str ...
随机推荐
- java.util.Map按照key值合并的value的Collection 集合中。
用java实现把多个map的内容合并的一个resultMap中 代码大致如下 /** * @author Shalf */ public class MapUtil { /** * 把partMa ...
- asp.net C#母版页和内容页事件排版载入顺序生命周期
asp.net C#母版页和内容页事件排版载入顺序生命周期 关于ASP页面Page_Load发生在事件之前而导致的问题已经喜闻乐见,对于问题的解释也非常全面.可是怎样解决这个问题则较少有人说明,我就再 ...
- MyBatis<forEach/>如何遍历Map参数里的值
纠结了好一阵子, 最终给我解决了. 直接上代码了: mapper文件: <insert id="saveBlogs"> INSERT INTO blog (user_i ...
- LIVE555研究之三:LIVE555基础
LIVE555基础 LIVE555是为流媒体提供解决方式的跨平台C++开源项目.从今天起我们将正式開始深入LIVE555代码. 一.各库简要介绍 LIVE555下包括LiveMedia.UsageEn ...
- Android开发_Gson解析
//转换器 GsonBuilder builder = new GsonBuilder(); // 不转换没有 @Expose 注解的字段 builder.excludeFieldsWithoutEx ...
- SNMP协议总结
说明:本文仅供学习交流,转载请标明出处,欢迎转载! SNMP(Simple Network Management Protocal),简单网络管理协议,其前身是SGMP协议(简单网关监控协议),该协议 ...
- 引用js或css后加?v= 版本号的用法(转)
<span style="font-size:14px;">css和js带参数(形如.css?v=与.js?v= 或 .css?version=与.js?version ...
- map的例子
11.4 编写单词计数程序,忽略大小写和标点.例如,“example.”,“example,"和”Example“应该递增相同的计算器. #include<iostream> # ...
- 聊聊动画引擎 pop
iOS可以通过CADisplayLink实现自定义动画引擎,pop就是基于此实现的,而且比原生Core Animation更强大好用.譬如当ViewController侧滑返回的时候,系统会将Core ...
- c#之内置类型
内置类型:就是.NET Framework System命名空间中写好的类型. 下面看看C#都有哪些内置类型 上面的内置类型,除了string和object外,其他的都被称作简单类型.也可以把左边的看 ...