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 相关文章推荐
使用MaxMind 根据IP地址对访问者定位
Oct 09 PHP
php下实现在指定目录搜索指定类型文件的函数
Oct 03 PHP
ThinkPHP之getField详解
Jun 20 PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
Aug 16 PHP
linux中cd命令使用详解
Jan 08 PHP
PHP中header函数的用法及其注意事项详解
Jun 13 PHP
php英文单词统计器
Jun 23 PHP
php fread读取文件注意事项
Sep 24 PHP
PHP JWT初识及其简单示例
Oct 10 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
Jan 23 PHP
PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】
Feb 25 PHP
PHP7实现和CryptoJS的AES加密方式互通示例【AES-128-ECB加密】
Jun 08 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
WordPress中设置Post Type自定义文章类型的实例教程
2016/05/10 PHP
QQ邮箱的一个文本编辑器代码
2007/03/14 Javascript
JavaScript prototype属性深入介绍
2012/11/27 Javascript
JS小游戏之宇宙战机源码详解
2014/09/25 Javascript
使用jsonp完美解决跨域问题
2014/11/27 Javascript
JavaScript使用指针操作实现约瑟夫问题实例
2015/04/07 Javascript
angular2使用简单介绍
2016/03/01 Javascript
jQuery为DOM动态追加事件的方法
2017/02/16 Javascript
canvas红包照片实例分享
2017/02/28 Javascript
JavaScript实现两个select下拉框选项左移右移
2017/03/09 Javascript
基于express中路由规则及获取请求参数的方法
2018/03/12 Javascript
Vue请求JSON Server服务器数据的实现方法
2018/11/02 Javascript
Vue.js 中的 v-show 指令及用法详解
2018/11/19 Javascript
使用Promise封装小程序wx.request的实现方法
2019/11/13 Javascript
vue-resourc发起异步请求的方法
2020/02/11 Javascript
js回到页面指定位置的三种方式
2020/12/17 Javascript
Python将xml和xsl转换为html的方法
2015/03/10 Python
Python 基于Twisted框架的文件夹网络传输源码
2016/08/28 Python
详解Python判定IP地址合法性的三种方法
2018/03/06 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
2018/05/10 Python
python3 实现的对象与json相互转换操作示例
2019/08/17 Python
python使用matplotlib绘制雷达图
2019/10/18 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
2020/05/16 Python
Python实现手绘图效果实例分享
2020/07/22 Python
python爬虫中PhantomJS加载页面的实例方法
2020/11/12 Python
pymysql模块使用简介与示例
2020/11/17 Python
美国美妆网站:B-Glowing
2016/10/12 全球购物
Alba Moda德国网上商店:意大利时尚女装销售
2016/11/14 全球购物
世界领先的高品质定制产品平台:Zazzle
2017/07/23 全球购物
如果一个类实现了多个接口但是这些接口有相同的方法名将会怎样
2013/06/16 面试题
公司财务流程之主管工作流程
2014/03/03 职场文书
优秀本科毕业生自荐信
2014/07/04 职场文书
幼儿园大班教育随笔
2015/08/14 职场文书
详解TypeScript的基础类型
2022/02/18 Javascript
微信小程序APP的事件绑定以及传递参数时的冒泡和捕获
2022/04/19 Javascript
Python中的 No Module named ***问题及解决
2022/07/23 Python