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 相关文章推荐
MYSQL 小技巧 -- LAST_INSERT_ID
Nov 24 PHP
PHP手机号码归属地查询代码(API接口/mysql)
Sep 04 PHP
PHP Switch 语句之学习笔记
Sep 21 PHP
PHP获取当前url的具体方法全面解析
Nov 26 PHP
php程序员应具有的7种能力小结
Nov 27 PHP
php实现遍历目录并删除指定文件中指定内容
Jan 21 PHP
MySql数据库查询结果用表格输出PHP代码示例
Mar 20 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
Jan 03 PHP
ThinkPHP框架安全实现分析
Mar 14 PHP
win10环境PHP 7 安装配置【教程】
May 09 PHP
WordPress中的shortcode短代码功能使用详解
May 17 PHP
laravel5.2实现区分前后台用户登录的方法
Jan 11 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
上海地方志办公室-上海电子仪表工业志
2021/03/04 无线电
PHP Squid中可缓存的动态网页设计
2008/09/17 PHP
PHP中判断变量为空的几种方法小结
2013/11/12 PHP
ThinkPHP的模版中调用session数据的方法
2014/07/01 PHP
PHP中file_get_contents高?用法实例
2014/09/24 PHP
php阿拉伯数字转中文人民币大写
2015/12/21 PHP
PHP实现无限极分类的两种方式示例【递归和引用方式】
2019/03/25 PHP
网站导致浏览器崩溃的原因总结(多款浏览器) 推荐
2010/04/15 Javascript
js插件Jcrop自定义截取图片功能
2016/10/14 Javascript
jquery判断页面网址是否有效的两种方法
2016/12/11 Javascript
JS+HTML5实现获取手机验证码倒计时按钮
2018/08/08 Javascript
vue router 源码概览案例分析
2018/10/09 Javascript
vue axios 简单封装以及思考
2018/10/09 Javascript
基于JS开发微信网页录音功能的实例代码
2019/04/30 Javascript
vue如何实现自定义底部菜单栏
2019/07/01 Javascript
python遍历文件夹并删除特定格式文件的示例
2014/03/05 Python
Python 异常处理实例详解
2014/03/12 Python
Python2.x中str与unicode相关问题的解决方法
2015/03/30 Python
python轻松查到删除自己的微信好友
2016/01/10 Python
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
2019/04/29 Python
python 中xpath爬虫实例详解
2019/08/26 Python
pytorch 实现cross entropy损失函数计算方式
2020/01/02 Python
python urllib和urllib3知识点总结
2021/02/08 Python
html5指南-1.html5全局属性(html5 global attributes)深入理解
2013/01/07 HTML / CSS
新员工入职感言
2014/02/01 职场文书
土木工程师职业规划范文
2014/03/07 职场文书
库房管理员岗位职责
2014/03/09 职场文书
2014年两会学习心得体会
2014/03/10 职场文书
教师廉洁自律承诺书
2014/05/26 职场文书
小学生放飞梦想演讲稿
2014/08/26 职场文书
党员民主生活会整改措施
2014/09/26 职场文书
处级领导干部四风问题自我剖析材料
2014/09/29 职场文书
大学生村官工作总结2015
2015/04/09 职场文书
解析:创业计划书和商业计划书二者之间到底有什么区别
2019/08/14 职场文书
pytorch 如何使用amp进行混合精度训练
2021/05/24 Python
Android开发手册TextInputLayout样式使用示例
2022/06/10 Java/Android