当前位置: 编程技术>php
thinkphp一键清除缓存实例教程
来源: 互联网 发布时间:2014-08-30
本文导语: thinkphp实现一键清除缓存 开源cms系统大都有一键清除缓存的功能,缓存是为了减轻服务器的压力而产生的,但是同时有缓存的存在也可能使一些数据不能实时更新。 以下实现一个thinkphp的清理缓存的功能。 相关阅读: php缓...
thinkphp实现一键清除缓存
开源cms系统大都有一键清除缓存的功能,缓存是为了减轻服务器的压力而产生的,但是同时有缓存的存在也可能使一些数据不能实时更新。
以下实现一个thinkphp的清理缓存的功能。
1,thinkphp后台执行的代码:
代码示例:
//获取要清楚的目录和目录所在的绝对路径
public function cache(){
////前台用ajax get方式进行提交的
if($_post['type']){
//得到传递过来的值
$type=$_post['type'];
//将传递过来的值进行切割,我是用“-”进行切割的
$name=explode('-', $type);
//得到切割的条数,便于下面循环
$count=count($name);
//循环调用上面的方法
for ($i=0;$irmfile($pa,$name[$i]);
}
//给出提示信息
$this->ajaxreturn(1,'清除成功',1);
}else{
$this->display();
}
}
public function rmfile($path,$filename){//删除执行的方法
//去除空格
$path = preg_replace('/(/){2,}|{}{1,}/','/',$path);
//得到完整目录
$path.= $filename;
//判断此文件是否为一个文件目录
if(is_dir($path)){
//打开文件
if ($dh = opendir($path)){
//遍历文件目录名称
while (($file = readdir($dh)) != false){
//逐一进行删除
unlink($path.''.$file);
}
//关闭文件
closedir($dh);
}
}
}
public function cache(){
////前台用ajax get方式进行提交的
if($_post['type']){
//得到传递过来的值
$type=$_post['type'];
//将传递过来的值进行切割,我是用“-”进行切割的
$name=explode('-', $type);
//得到切割的条数,便于下面循环
$count=count($name);
//循环调用上面的方法
for ($i=0;$irmfile($pa,$name[$i]);
}
//给出提示信息
$this->ajaxreturn(1,'清除成功',1);
}else{
$this->display();
}
}
public function rmfile($path,$filename){//删除执行的方法
//去除空格
$path = preg_replace('/(/){2,}|{}{1,}/','/',$path);
//得到完整目录
$path.= $filename;
//判断此文件是否为一个文件目录
if(is_dir($path)){
//打开文件
if ($dh = opendir($path)){
//遍历文件目录名称
while (($file = readdir($dh)) != false){
//逐一进行删除
unlink($path.''.$file);
}
//关闭文件
closedir($dh);
}
}
}
2,前台页面部分代码:
代码示例:
$(function(){
$('#button').click(function(){
if(confirm("确认要清除缓存?")){
var $type=$('#type').val();
var $mess=$('#mess');
$.post('__url__/clear',{type:$type},function(data){
alert("缓存清理成功");
});
}else{
return false;
}
});
});