php目录操作实例代码


Posted in PHP onFebruary 21, 2014
<?php 
    /**
    * listdir
    */
    header("content-type:text/html;charset=utf-8");
    $dirname = "./final/factapplication";
    function listdir($dirname) {
        $ds = opendir($dirname);
        while (false !== ($file = readdir($ds))) {
            $path = $dirname.'/'.$file;
            if ($file != '.' && $file != '..') {
                if (is_dir($path)) {
                    listdir($path);
                } else {
                    echo $file."<br>";
                }
            }
        }
        closedir($ds);
    }
    listdir($dirname);

核心:递归的经典应用,以及文件和目录的基本操作。

<?php
    /**
    * copydir
    */
    $srcdir = "../fileupload";
    $dstdir = "b";
    function copydir($srcdir, $dstdir) {
        mkdir($dstdir);
        $ds = opendir($srcdir);
        while (false !== ($file = readdir($ds))) {
            $path = $srcdir."/".$file;
            $dstpath = $dstdir."/".$file;
            if ($file != "." && $file != "..") {
                if (is_dir($path)) {
                    copydir($path, $dstpath);
                } else {
                    copy($path, $dstpath);
                }
            }
        }
        closedir($ds);
    }
    copydir($srcdir, $dstdir);

核心:copy函数。

<?php
    /**
    * deldir
    */
    $dirname = 'a';
    function deldir($dirname) {
        $ds = opendir($dirname);
        while (false !== ($file = readdir($ds))) {
            $path = $dirname.'/'.$file;
            if($file != '.' && $file != '..') {
                if (is_dir($path)) {
                    deldir($path);
                } else {
                    unlink($path);
                }
            }
        }
        closedir($ds);
        return rmdir($dirname);
    }
    deldir($dirname);

核心:注意unlink删除的是带path的file。

<?php
    /**
    * dirsize
    */
    $dirname = "a";
    function dirsize($dirname) {
        static $tot;
        $ds = opendir($dirname);
        while (false !== ($file = readdir($ds))) {
            $path = $dirname.'/'.$file;
            if ($file != '.' && $file != '..') {
                if(is_dir($path)) {
                    dirsize($path);
                } else {
                    $tot = $tot + filesize($path);
                }
            }
        }
        return $tot;
        closedir($ds);
    }
    echo dirsize($dirname);

核心:通过判断$tot在哪里返回,理解递归函数。
PHP 相关文章推荐
基于文本的留言簿
Oct 09 PHP
java EJB 加密与解密原理的一个例子
Jan 11 PHP
连接到txt文本的超链接,不直接打开而是点击后下载的处理方法
Jul 01 PHP
基于asp+ajax和数据库驱动的二级联动菜单
May 06 PHP
php中通过虚代理实现延迟加载的实现代码
Jun 10 PHP
PHP中替换换行符的几种方法小结
Oct 15 PHP
php中使用Ajax时出现Error(c00ce56e)的详细解决方案
Nov 03 PHP
php发送html格式文本邮件的方法
Jun 10 PHP
win10环境PHP 7 安装配置【教程】
May 09 PHP
PHP的消息通信机制测试实例
Nov 10 PHP
可兼容php5与php7的cURL文件上传功能实例分析
May 11 PHP
PHP Ajax跨域问题解决方案代码实例
Aug 01 PHP
php无限遍历目录示例
Feb 21 #PHP
php自动加载autoload机制示例分享
Feb 20 #PHP
php多文件上传下载示例分享
Feb 20 #PHP
php分页代码学习示例分享
Feb 20 #PHP
php多文件上传实现代码
Feb 20 #PHP
php图片缩放实现方法
Feb 20 #PHP
php跨域cookie共享使用方法
Feb 20 #PHP
You might like
非洲第一个咖啡超凡杯大赛承办国—卢旺达的咖啡怎么样
2021/03/03 咖啡文化
比file_get_contents稳定的curl_get_contents分享
2012/01/11 PHP
TP3.2框架分页相关实现方法分析
2020/06/03 PHP
主页面中的两个iframe实现鼠标拖动改变其大小
2013/04/16 Javascript
JS判断客户端是手机还是PC的2个代码
2014/04/12 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
2014/11/26 Javascript
node.js中的path.delimiter方法使用说明
2014/12/09 Javascript
在JS中操作时间之getUTCMilliseconds()方法的使用
2015/06/10 Javascript
Ionic2调用本地SQlite实例
2017/04/22 Javascript
Vue中的ref作用详解(实现DOM的联动操作)
2017/08/21 Javascript
vue cli升级webapck4总结
2018/04/04 Javascript
vue实现简单loading进度条
2018/06/06 Javascript
浅谈webpack4.x 入门(一篇足矣)
2018/09/05 Javascript
vue实现父子组件之间的通信以及兄弟组件的通信功能示例
2019/01/29 Javascript
vue2.0基于vue-cli+element-ui制作树形treeTable
2019/04/30 Javascript
JS实现图片懒加载(lazyload)过程详解
2020/04/02 Javascript
es6函数之尾调用优化实例分析
2020/04/25 Javascript
[01:06:54]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第一场 1月24日
2021/03/11 DOTA
Python中asyncore的用法实例
2014/09/29 Python
Python求导数的方法
2015/05/09 Python
Python元组及文件核心对象类型详解
2018/02/11 Python
Python数据预处理之数据规范化(归一化)示例
2019/01/08 Python
Django配置MySQL数据库的完整步骤
2019/09/07 Python
Python字符串split及rsplit方法原理详解
2020/06/29 Python
CSS3实现3D翻书效果
2016/06/20 HTML / CSS
canvas因为图片资源不在同一域名下而导致的跨域污染画布的解决办法
2019/01/18 HTML / CSS
雅诗兰黛澳大利亚官网:Estée Lauder澳大利亚
2019/05/31 全球购物
Muziker英国:中欧最大的音乐家商店
2020/02/05 全球购物
请解释一下webService? 如何用.net实现webService
2014/06/09 面试题
庆元旦迎新年广播稿
2014/02/18 职场文书
法律六进活动方案
2014/03/13 职场文书
网络工程师自荐书范文
2014/04/01 职场文书
会员卡清退活动总结
2014/08/27 职场文书
研究生简历自我评价范文
2014/09/13 职场文书
MBA推荐信怎么写
2015/03/25 职场文书
2016年教师党员创先争优承诺书
2016/03/24 职场文书