`

PHP清除缓存之几种方法

 
阅读更多

现在开发的项目是用tp3.1版本的,在开发过程中我们常常会遇到页面缓存的问题(特别是html的缓存);刷新后还是旧版的数,再刷新下还是旧版数据,慢慢的开始怀疑人生了,哈哈;所以在开发过程中我们又必要每次及时清除缓存。

清除缓存的方法大概有3种(都是实际经历总结):

第一:在项目的配置文件config.php里加入下面两行代码就能避免缓存问题

  'TMPL_CACHE_ON' => false,//禁止模板编译缓存  

  'HTML_CACHE_ON' => false,//禁止静态缓存 

这两行代码在这里我就不解释啦;

第二:TP框架的缓存目录存放在文件夹public_html\App\Runtime下,每次开发完成后手动删除里面的所有文件

(感觉有点暴力和愚蠢),但这种方法最蠢,测试和线上环境如果没有权限就删除不了了;

第三:我自己写的清除缓存类,我们可以在业务控制器同目录下新建自己的"清除缓存"的类(核心思想就是利用TP框架自带的缓存类来操作,TP框架的源代码大家可以看下),通过url访问的方式来清楚缓存,代码如下:

// +----------------------------------------------------------------------

// | Copyright (c) 2007-2009 

// +----------------------------------------------------------------------

// $Id: ClearAction.class.php 668 2016-05-03 11:43:12Z chenhaibo $

/**

 +------------------------------------------------------------------------------

 * 清除缓存

 +------------------------------------------------------------------------------

 * @author    haibo <chenhaibo0806@163.com>

 * @version   $Id: ClearAction.class.php 668 2016-05-03 11:43:12Z chenhaibo $

 +------------------------------------------------------------------------------

 */

class ClearAction extends Action{

/**

+----------------------------------------------------------

* 清除缓存

+----------------------------------------------------------

* @access public

+----------------------------------------------------------

* @return void

+----------------------------------------------------------

*/

public function clearcache() {

   $_token = isset($_GET['token']) ? trim($_GET['token']) : '';

   $_operate = isset($_GET['operate']) ? trim($_GET['operate']) : '';

 

   $_option = array();

   if($_operate == 'runtime') $_option['temp'] = RUNTIME_PATH;  //各种缓存数据存放目录

   if($_operate == 'cache') $_option['temp'] = CACHE_PATH;

   if($_operate == 'data') $_option['temp'] = DATA_PATH;

   if($_operate == 'fields') $_option['temp'] = DATA_PATH."/_fields";

 

   import('Think.Util.Cache.CacheFile');

   $CacheFile = new CacheFile($_option);

   $CacheFile->clear();

   echo 'success';

    }

}

clear函数其实就是删除缓存文件。



 

浏览器器地址栏输入地址:

http://test.xxx.cn/Clear-clearcache?operate=fields  //测试环境

http://www.xxx.cn/Clear-clearcache?operate=fields  //正式环境

基本上就是这些吧,希望对大家有所帮助。

 

 

 

 

 

 

 

  • 大小: 36.5 KB
分享到:
评论

相关推荐

    PHP清除缓存的几种方法总结

    本文将对PHP清除缓存的几种方法进行总结,这些方法包括配置文件设置、手动删除缓存文件和编写自定义清除缓存类。 首先,我们可以通过修改项目配置文件来禁止某些类型的缓存。例如,在ThinkPHP框架中,可以在config....

    js清除浏览器缓存的几种方法

    // PHP清除缓存 ``` 最后,JavaScript中的`window.location.replace()`方法可以用来替换当前页面,从而达到清除缓存的效果,因为replace会替换掉历史记录中的当前页面,阻止用户回退到旧版本。例如: ```...

    清除浏览器缓存的几种方法总结(必看)

    以上就是清除浏览器缓存的几种常见方法。每种方法都有其适用场景,根据实际需求选择合适的方式能够有效地解决因缓存引起的问题,确保用户始终获取最新的网页内容。在开发和调试过程中,掌握这些技巧能够大大提高工作...

    Yii2 assets清除缓存的方法

    清除 Yii2 assets 缓存主要有几种方法: 1. 使用命令行工具: Yii2 提供了命令行工具 `yiic` 来清除 assets 缓存。可以通过以下命令来清除缓存: ``` yiic asset clear ``` 这条命令会清除 web 目录下已经部署...

    php 缓存例子实践

    4. **清除缓存**:当需要更新缓存或者清空所有缓存时,可以使用`clean()`或`remove()`方法。 ```php $cache-&gt;clean(); // 清除所有缓存 $cache-&gt;remove('myCachedData'); // 删除指定key的缓存 ``` 在实际开发...

    php 文件夹删除、php清除缓存程序

    此外,代码中提到了“ThinkPHP实现一键清除缓存方法”和“PHP清除缓存的几种方法总结”,这暗示在PHP应用程序中,特别是在使用框架(如ThinkPHP)时,通常会有专门的缓存管理机制。例如,ThinkPHP框架提供了一键清除...

    清除js缓存的多种方法总结

    本文将总结几种清除JavaScript(JS)缓存的方法,帮助开发者解决类似的问题。 1. HTML 头部元标签设置: 在HTML文件的`&lt;head&gt;`部分添加以下元标签,可以告诉浏览器不要缓存页面内容: ```html , must-...

    PHP Yii清理缓存的实现方法

    以下介绍的是在Yii框架中实现缓存清理的几种方法。 首先,我们可以通过前台JavaScript代码来触发缓存的清理操作。这里提供了一个简单的HTML按钮,当用户点击时,会通过AJAX请求调用服务器端的清理缓存逻辑。 在...

    清除AJAX的缓存,清除AJAX的缓存

    针对上述问题,开发者可以通过以下几种方式来清除Ajax请求的缓存: ##### 1. 修改请求URL 一种简单有效的方法是在Ajax请求的URL后面添加一个随机数作为参数,这样每次请求的URL都是唯一的,浏览器就会认为这是全新...

    php一个简单的文件缓存类.zip

    要构建一个简单的文件缓存类,首先我们需要定义几个核心方法: 1. **`__construct()`**:构造函数,初始化类的属性,例如设置缓存目录、默认缓存有效期等。 2. **`get($key)`**:根据键获取缓存内容。首先检查文件...

    一个实用的PHP缓存类.zip

    清除缓存功能允许开发者在需要时删除所有或特定的缓存文件,例如在数据更新或系统维护时。此功能可能通过遍历缓存目录,匹配特定文件名或者按照时间戳来实现。 3. **动态文件生成缓存文件名**: 对于动态内容,如...

    以文件形式缓存php变量的方法

    在PHP中实现文件缓存,我们可以创建一个缓存类,用来定义缓存的基本操作,如设置缓存路径、缓存时间、缓存类型以及扩展名等配置项,并实现缓存的写入、读取和清除等方法。 #### 缓存类的关键属性 - `cacheRoot`: ...

    Stash一个PHP缓存库

    Stash提供了几种内置的失效策略,如`\Stash\Strategy\Time`, `\Stash\Strategy\Random`, 和 `\Stash\Strategy\LeastRecentlyUsed`。你可以根据需求选择合适的策略。 ### 5. 扩展与社区 Stash有一个活跃的社区,...

    php模板解析类文件缓存

    Smarty的缓存管理策略非常灵活,可以通过设置缓存生命周期(即缓存多久后失效)、缓存依赖(当关联的某些文件或数据改变时自动清除缓存)等来控制。此外,Smarty还支持缓存前/后处理器,允许在内容缓存生成前后执行...

    php实现的redis缓存类定义与使用方法示例

    清除缓存的方法名为clean,它的作用是删除指定缓存文件的数据。一旦调用此方法,原先的缓存数据将被清除,之后的请求将会重新生成新的缓存数据。 取得缓存文件路径的方法是getcacheid,它会根据当前页面的URL生成一...

    clear_cache:使用 shell 或在您的应用程序中清除 cakephp 缓存,还包括用于清除缓存的 debugkit 面板

    ClearCache 插件提供了几种方法来清除 CakePHP 应用程序中的 CACHE 子文件夹和缓存引擎。 要求 master 分支有以下要求: CakePHP 2.0 或更高版本。 PHP 5.3.0 或更高版本。 对于 CakePHP 1.3,使用 1.3 分支。 ...

    Laravel 的缓存源码解析1

    Laravel 默认支持以下几种缓存驱动: 1. **File**:将缓存数据存储在文件系统中,默认驱动。 2. **APC**:使用 Alternative PHP Cache (APC) 扩展。 3. **Array**:内存中的数组,用于测试环境。 4. **Database**:...

Global site tag (gtag.js) - Google Analytics