Maison  >  Article  >  développement back-end  >  ThinkPHP implémente une méthode de suppression du cache en un clic

ThinkPHP implémente une méthode de suppression du cache en un clic

不言
不言original
2018-06-06 15:15:231889parcourir

Cet article présente principalement la méthode de suppression du cache en un clic dans ThinkPHP. Les amis qui en ont besoin peuvent s'y référer

De nombreux systèmes cms open source ont pour fonction de vider le cache en un seul clic. réduire la pression sur le serveur générée, mais l'existence de cache peut également empêcher la mise à jour de certaines données en temps réel. À cet égard, nous implémenterons une fonction de suppression du cache ThinkPHP. Le code est le suivant :

Code d'exécution en arrière-plan de ThinkPHP :

//获取要清楚的目录和目录所在的绝对路径
 public function cache(){
  ////前台用ajax get方式进行提交的,这里是先判断一下
  if($_POST['type']){
   //得到传递过来的值
   $type=$_POST['type'];
   //将传递过来的值进行切割,我是用“-”进行切割的
   $name=explode('-', $type);
   //得到切割的条数,便于下面循环
   $count=count($name);
   //循环调用上面的方法
   for ($i=0;$i<$count;$i++){
    //得到文件的绝对路径
    $abs_dir=dirname(dirname(dirname(dirname(__FILE__))));
    //组合路径
    $pa=$abs_dir.&#39;indexRuntime&#39;;
    $runtime=$abs_dir.&#39;indexRuntime~runtime.php&#39;;
    if(file_exists($runtime))//判断 文件是否存在
    {
     unlink($runtime);//进行文件删除
    }
 //调用删除文件夹下所有文件的方法
    $this->rmFile($pa,$name[$i]); 
   }
   //给出提示信息
   $this->ajaxReturn(1,&#39;清除成功&#39;,1);
  }else{
   $this->display();
  }
 }
 public function rmFile($path,$fileName){//删除执行的方法
  //去除空格
  $path = preg_replace(&#39;/(/){2,}|{}{1,}/&#39;,&#39;/&#39;,$path); 
  //得到完整目录 
  $path.= $fileName;
  //判断此文件是否为一个文件目录
  if(is_dir($path)){
   //打开文件
   if ($dh = opendir($path)){
    //遍历文件目录名称
     while (($file = readdir($dh)) != false){
      //逐一进行删除
      unlink($path.&#39;&#39;.$file);
      }
      //关闭文件
      closedir($dh);
    } 
   }
 }

Le code de la page frontale est le suivant :

<script type="text/javascript" src="__PUBLIC__/admin/js/jquery.js"></script>
<script type="test/javascript">
$(function(){
$(&#39;#button&#39;).click(function(){
if(confirm("确认要清除缓存?")){
var $type=$(&#39;#type&#39;).val();
var $mess=$(&#39;#mess&#39;);
$.post(&#39;__URL__/clear&#39;,{type:$type},function(data){
alert("缓存清理成功");
});
}else{
return false;
}
});
});
</script>

Recommandations associées :

Implémentation ThinkPHP des appels inter-modules

Implémentation de ThinkPHP Explication détaillée de l'instance de données de mise à jour (démo)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn