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程序缓存之文件缓存处理方式的更多相关文章

  1. [Android]异步加载图片,内存缓存,文件缓存,imageview显示图片时增加淡入淡出动画

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3574131.html  这个可以实现ImageView异步加载 ...

  2. app缓存设计-文件缓存

    采用缓存,可以进一步大大缓解数据交互的压力,又能提供一定的离线浏览.下边我简略列举一下缓存管理的适用环境: 1. 提供网络服务的应用 2. 数据更新不需要实时更新,哪怕是3-5分钟的延迟也是可以采用缓 ...

  3. .net 缓存之文件缓存依赖

    CaCheHelp 类中代码如下: #region 根据键从缓存中读取保持的数据 /// <summary> /// 根据键从缓存中读取保持的数据 /// </summary> ...

  4. thinkphp3.2配置redis缓存和文件缓存

    如果把一些常用但又不容易变的数据存缓存,而不是每次查数据库,这样能很大减轻数据库压力 最近由于项目需要,就尝试了一把redis,但是后面又用了tp3.2的文件缓存,直接进入主题: 在config.ph ...

  5. Android应用程序文件缓存getCacheDir()和getExternalCacheDir()

    如果Android引用程序需要缓存临时文件,系统提供了一个可管理的“内部缓存”和一个不可管理的“外部缓存”,分别调用getCacheDir()和getExternalCacheDir()方法,可以从当 ...

  6. Discuz!NT静态文件缓存(SQUID)

    在目前最新版本的产品中,我们提供了缓存静态文件的解决方案,就是使用SQUID做静态前端,将论坛中的大部分静态文件布署或外链到一个新的HTTP链接上,其中可以外链的静态文件包括:      1.Disc ...

  7. Asp.net文件缓存依赖

    Asp.net文件缓存依赖 using System; using System.Collections.Generic; using System.Linq; using System.Web; u ...

  8. 怎么用php语言来做文件缓存

    使用缓存能够让我们的程序访问起来更加快速,缓存可以减少对数据库的操作,体验起来更好一些,对服务器的压力也小一些,当然服务速度很快 php文件执行完之后产生的解析完的数据,保存成静态的网页,下次打开的这 ...

  9. $.ajax()方法详解 ajax之async属性 【原创】详细案例解剖——浅谈Redis缓存的常用5种方式(String,Hash,List,set,SetSorted )

    $.ajax()方法详解   jquery中的ajax方法参数总是记不住,这里记录一下. 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为Str ...

随机推荐

  1. 淘宝HSF服务的原理以及简单的实现

    淘宝HSF服务具体来说分三个应用:api接口,service服务,本地应用. 最基本的Api服务应该是十分干净的,不含方法,只有接口.它是要被打包(jar包的形式)到中央仓库去的. service服务 ...

  2. S2SH商用后台权限系统第一讲

    各位博友: 您好!从今天开始我们做一套商用的权限系统.功能包含用户管理.角色管理.模块管理.权限管理.大家知道每个商用系统肯定会拥有一套后台系统,我们所讲的权限系统是整个系统核心部分.本套系统技术有s ...

  3. List 排序

    1:sort 这种实现是用朗姆达表达式实现.Comparison<T> 委托详见 http://msdn.microsoft.com/zh-cn/library/tfakywbh.aspx ...

  4. ListView视图缓存错位问题

    由于之前写Scroller应用:ListView滑动删除遇到Item视图错位问题,观察发现第1item位置改变后,第1+10的item布局也跟着改变.假设使用ScrollView+ListView,把 ...

  5. tar命令的详解

    tar命令 [root@linux ~]# tar [-cxtzjvfpPN] 文件与文件夹 ....參数:-c :建立一个压缩文件的參数指令(create 的意思):-x :解开一个压缩文件的參数指 ...

  6. CenOS搭建FTP服务器

    CenOS搭建FTP服务器 -------------------------------------------------------------------------准备工作--------- ...

  7. linux 打补丁 2原理

    1.创建目录 demo cd demo 有bug文件a.txt: 当前目录为demo mkdir -p old/a/p vi old/a/p/foo.txt old_line_1 old_line_2 ...

  8. 鼠标移动事件--JavaScript

    鼠标移动事件 <html> <head> <title>鼠标移动事件</title> </head> <style type=&quo ...

  9. 使用摘要流获取文件的MD5

    摘要流是过滤流的一种,使用它可以再读取和写入流时获取流的摘要信息(MD5/SHA). 使用摘要流包装流时,需要额外传递一个MessageDigest对象, MessageDigest md=Messa ...

  10. Android(java)学习笔记160:Framework运行环境之 Android进程产生过程

    1.前面Android(java)学习笔记159提到Dalvik虚拟机启动初始化过程,就下来就是启动zygote进程: zygote进程是所有APK应用进程的父进程:每当执行一个Android应用程序 ...