thinkphp清空所有目录(包括子目录)

本文介绍如何使用PHP脚本批量删除指定目录下的所有XML文件,包括处理子目录情况,并提供了调用方法及静态页面实现。
在admin项目的Common目录下common.php文件:

/**
*   删除xml目录下的所有xml文件
*   string $fp  文件路径(不包括文件名)
*   string $fn  文件名称(包括扩展名)
*   boolean $type 是否关联到所有子目录
*/
function delXML($type=true,$fn='',$fp='./xml'){
 if(!is_dir($fp)){
  return 'nodir';  //被删除目录不存在
 }else{
  if(!is_empty_dir($fp)){//如果不是空的     
   $H = @ opendir($fp);
   while(false !== ($_file=readdir($H))){
    //检索目录
    if(is_dir($fp."/".$_file) && $_file != "." && $_file!=".." && $_file!=="Thumbs.db"){
     if($type){
      if(!is_empty_dir($fp.'/'.$_file)){//如果不是,调用自身,不过是原来的路径+他下级的目录名   
       delXML($type,$fn,$fp."/".$_file);
      }   
      if(is_empty_dir($fp.'/'.$_file)){//如果是空就直接删除   
       rmdir($fp.'/'.$_file);   
      }   
     }
    //检索文件
    }else if(is_file($fp."/".$_file) && $_file!="." && $_file!=".." && $_file!=="Thumbs.db"){
     if(eregi('/'.$file,'/'.$_file)){
      if(!unlink($fp.'/'.$_file)){
       return false; //删除失败
      }
     }
    }
   }
   closedir($H);  
  }   
  return true;   //删除失败
 }
}   

//判断目录是否为空,true为空,false为不空
function is_empty_dir($fp)   
{   
 $H = @ opendir($fp);
 $i=0;   
 while($_file=readdir($H)){   
  $i++;   
 }   
 closedir($H);   
 if($i>2){
  return false;
 }else{
  return true;  
 }
}

 

调用方法:

在admin项目的Action目录下SiteMapAction.class.php文件:

class SiteMapAction extends Action {

 //删除全部xml目录地图文件
 function delXML(){
  $flag = delXML();
  exit($flag);
 }

}

 

静态页面ajax方法:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="../Public/js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" charset="utf-8" src="__PUBLIC__/js/artDialog/artDialog.min.js"></script>
<title>删除目录文件</title>
</head>

<body>
<script language="javascript">

function delXML(){
 if(!window.confirm('确定要删除整站地图吗?')){
  return; 
 }
 var testDialog;
 testDialog = art.dialog({
  lock: false,
  title:'',
  id:'loaddialog',
  content:'<font color="#ff0000">正在删除中...</font>',
  width:220
 });
 var url="{:U('delXML')}";
 $.get(url,null,function(data){
  //$("#con").append(data);
  testDialog.close();
  if(data == true){
   alert('删除成功!');
  }else if(data == false){
   alert('删除失败,请稍候再试...');
  }else if(data == 'nodir'){
   alert('错误:被删除目录不存在'); 
  }
 });
}
</script>
<input name="delete" type="button" class="agin agn"  value="全删除" onClick="javascript:return delXML();"/>
</body>
</html>

 

### ThinkPHP6 Admin目录结构及配置说明 在ThinkPHP6中,`admin` 目录通常用于构建管理后台模块。通过多应用模式的支持,可以方便地分离不同功能的应用程序,使得项目更加晰和易于维护。 #### 多应用模式设置 为了启用多应用模式并创建 `admin` 应用: - 需要先安装多应用模式扩展包[^4] ```bash composer require topthink/think-multi-app ``` 接着移除默认的控制器文件夹以切换到多应用模式: ```bash rm -rf app/controller/ ``` 然后利用命令行工具建立新的应用程序实例, 如需创建名为 `admin` 的应用可运行如下指令: ```bash php think build admin ``` 这一步骤会自动生成相应的基础架构,在项目的根路径下形成一个新的子文件夹即 `admin` 文件夹。 #### Admin目录结构解析 典型的 `admin` 目录可能具有以下层次结构: ``` ├── application │ ├── admin // 后台管理应用目录 │ │ ├── config // 配置文件存放位置 │ │ ├── controller // 控制器类所在的位置 │ │ ├── model // 数据模型定义处 │ │ ├── view // 视图模板存储区 │ │ └── ... └── ... ``` 其中特别需要注意的是 `config` 下面可能会有特定于该应用的一些设定项;而 `view` 则用来放置与前端展示有关的内容,如HTML页面或其他视图组件。 对于URL访问而言,当启用了多应用支持后,可以通过类似于这样的形式来调用 `admin` 中的功能[^2]: ``` http://yourdomain.com/admin/index.php?c=ControllerName&a=ActionName ``` 或是更简洁的方式(假设已经做了适当路由优化) ``` http://yourdomain.com/admin/ControllerName/actionName ``` 以上就是关于ThinkPHP6环境下如何理解和操作 `admin` 目录的相关介绍。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值