php 目录遍历、删除 函数的使用介绍


Posted in PHP onApril 28, 2013

小编今天没事写了目录想关的函数 

   包括 遍历该文件夹下的文件,目录子目录  读取当前文件下目录和文件  删除当前文件夹下的目录子目录以及文件 以上三个函数目前还不支持中文文件 中文目录

<?php
header("Content-type:text/html;charset=utf-8");
/**
* 读取当前目录下的文件和目录
* 
* @param    string    $path    路径
* @return    array    所有满足条件的文件
*/
function tlist($path){
    $path = iconv('utf-8', 'gbk', $path);
    if(!is_dir($path)){
        throw new Exception($path."不是目录");
    }
    $arr = array('dir'=>array(),'file'=>array());
    $hd = opendir($path);
    while(($file = readdir($hd))!==false){
        if($file=="."||$file=="..") {continue;}
        if(is_dir($path."/".$file)){
            $arr['dir'][] = iconv('gbk','utf-8',$file);
        }else if(is_file($path."/".$file)){
            $arr['file'][] = iconv('gbk','utf-8',$file);
        }
    }
    closedir($hd);
    echo "目录有:".implode("<br />",$arr['dir'])."<br />";
    echo "文件有:".implode("<br />",$arr['file']);
}
/**
* 遍历当前目录下的文件和目录以及子文件夹中目录
* 
* @param    string    $path    路径
* @return    array    所有满足条件的文件
*/
function blist($path){
    if(!is_dir(iconv("utf-8","gbk",$path))){
    throw new Exception("文件夹".$path."不存在或者不是文件");
   }
    $arr = array();
    $hd = opendir(iconv("utf-8","gbk",$path));
    while(($file = readdir($hd))!==false){
        if($file=="."||$file=="..") {continue;}
          $newpath=iconv('utf-8', 'gbk', $path) .'/'.$file;
        if(is_dir($newpath)){
            $arr[] = blist($path."/".$file);
        }else if(is_file($newpath)){
            $arr[] = iconv('gbk','utf-8',$file);
        }
    }
    closedir($hd);
    return $arr;
}
/**
* 删除目录下的文件以及子目录
* #param  string $path 路径
* #return string 删除成功返回true 失败返回false;
*/
function dirDel($path){
    if(!is_dir($path)){
        throw new Exception($path."输入的不是有效目录");
    }
    $hand = opendir($path);
    while(($file = readdir($hand))!==false){
        if($file=="."||$file=="..")  continue;
        if(is_dir($path."/".$file)){
            dirDel($path."/".$file);
        }else{
            @unlink($path."/".$file);
        }    }
    closedir($hand);
    @rmdir($path);
}
?>

PHP 相关文章推荐
一些常用的php函数
Dec 06 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
Aug 03 PHP
php使用CURL伪造IP和来源实例详解
Jan 15 PHP
PHP 与 UTF-8 的最佳实践详细介绍
Jan 04 PHP
PHP合并数组函数array_merge用法分析
Feb 17 PHP
PHP编辑器PhpStrom运行缓慢问题
Feb 21 PHP
搭建自己的PHP MVC框架详解
Aug 16 PHP
Laravel中服务提供者和门面模式的入门介绍
Nov 06 PHP
PHP chop()函数讲解
Feb 11 PHP
关于laravel5.5的定时任务详解(demo)
Oct 23 PHP
TP5框架简单登录功能实现方法示例
Oct 31 PHP
php7 list()、session及其他模块的修改实例分析
May 25 PHP
基于php权限分配的实现代码
Apr 28 #PHP
基于ubuntu下nginx+php+mysql安装配置的具体操作步骤
Apr 28 #PHP
phpcms模块开发之swfupload的使用介绍
Apr 28 #PHP
php中get_headers函数的作用及用法的详细介绍
Apr 27 #PHP
使用php get_headers 判断URL是否有效的解决办法
Apr 27 #PHP
php中serialize序列化与json性能测试的示例分析
Apr 27 #PHP
php gzip压缩输出的实现方法
Apr 27 #PHP
You might like
PHP中几个常用的魔术常量
2012/02/23 PHP
PHP递归删除目录几个代码实例
2014/04/21 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
thinkPHP框架整合tcpdf插件操作示例
2018/08/07 PHP
jQuery 性能优化手册 推荐
2010/02/23 Javascript
javascript 兼容所有浏览器的DOM扩展功能
2012/08/01 Javascript
JS性能优化笔记搜索整理
2013/08/21 Javascript
jquery序列化表单去除指定元素示例代码
2014/04/10 Javascript
详解JavaScript表单验证(E-mail 验证)
2016/03/31 Javascript
JS防止网页被嵌入iframe框架的方法分析
2016/09/13 Javascript
Javascript下拉刷新的简单实现
2017/02/14 Javascript
Vue从TodoList中学父子组件通信
2019/02/05 Javascript
Vue3.0中的monorepo管理模式的实现
2019/10/14 Javascript
react国际化化插件react-i18n-auto使用详解
2020/03/31 Javascript
如何HttpServletRequest文件对象并储存
2020/08/14 Javascript
Python的Scrapy爬虫框架简单学习笔记
2016/01/20 Python
Python中 Lambda表达式全面解析
2016/11/28 Python
详解python之配置日志的几种方式
2017/05/22 Python
如何不用安装python就能在.NET里调用Python库
2019/07/12 Python
python实现读取excel文件中所有sheet操作示例
2019/08/09 Python
pytorch 在sequential中使用view来reshape的例子
2019/08/20 Python
基于python实现从尾到头打印链表
2019/11/02 Python
Tensorflow中的降维函数tf.reduce_*使用总结
2020/04/20 Python
python使用selenium爬虫知乎的方法示例
2020/10/28 Python
python实现图像随机裁剪的示例代码
2020/12/10 Python
《小池塘》教学反思
2014/02/28 职场文书
经济管理专业求职信
2014/06/09 职场文书
个人授权委托书范文
2014/09/21 职场文书
教师学习八项规定六项禁令思想汇报
2014/09/27 职场文书
委托函范文
2015/01/29 职场文书
证券公司客户经理岗位职责
2015/04/09 职场文书
《岳阳楼记》原文、译文赏析
2019/09/10 职场文书
2019年最新感恩节祝福语(28句)
2019/11/27 职场文书
Golang 编译成DLL文件的操作
2021/05/06 Golang
Mysql排序的特性详情
2021/11/01 MySQL
进行数据处理的6个 Python 代码块分享
2022/04/06 Python