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 相关文章推荐
mysql时区问题
Mar 26 PHP
php 智能404跳转代码,适合换域名没改变目录的网站
Jun 04 PHP
允许phpmyadmin空密码登录的配置方法
May 29 PHP
使用PHP curl模拟浏览器抓取网站信息
Oct 28 PHP
Win7 64位系统下PHP连接Oracle数据库
Aug 20 PHP
浅谈PHP正则表达式中修饰符/i, /is, /s, /isU
Oct 21 PHP
php获取指定范围内最接近数的方法
Jun 02 PHP
PHP实现动态web服务器方法
Jul 29 PHP
详解php魔术方法(Magic methods)的使用方法
Feb 14 PHP
php简单的上传类分享
May 15 PHP
php readfile下载大文件失败的解决方法
May 22 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
Nov 25 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
php中目录,文件操作详谈
2007/03/19 PHP
php中的路径问题与set_include_path使用介绍
2014/02/11 PHP
关于js和php对url编码的处理方法
2014/03/04 PHP
Codeigniter购物车类不能添加中文的解决方法
2014/11/29 PHP
PHP以json或xml格式返回请求数据的方法
2018/05/31 PHP
Safari5中alert的无限循环BUG
2011/04/07 Javascript
读jQuery之十一 添加事件核心方法
2011/07/31 Javascript
javascript高级程序设计第二版第十二章事件要点总结(常用的跨浏览器检测方法)
2012/08/22 Javascript
推荐9款炫酷的基于jquery的页面特效
2014/12/07 Javascript
jQuery实现div随意拖动的实例代码(通用代码)
2016/01/28 Javascript
javascript中错误使用var造成undefined
2016/03/31 Javascript
canvas实现十二星座星空图
2017/02/14 Javascript
详解如何配置vue-cli3.0的vue.config.js
2018/08/23 Javascript
使用react render props实现倒计时的示例代码
2018/12/06 Javascript
微信小程序实现传递多个参数与事件处理
2019/08/12 Javascript
ant design vue中表格指定格式渲染方式
2020/10/28 Javascript
Python isinstance判断对象类型
2008/09/06 Python
python查找第k小元素代码分享
2013/12/18 Python
python中使用mysql数据库详细介绍
2015/03/27 Python
python获取指定网页上所有超链接的方法
2015/04/04 Python
Python+Opencv识别两张相似图片
2020/03/23 Python
详解如何使用Python编写vim插件
2017/11/28 Python
python实现定时压缩指定文件夹发送邮件
2020/12/22 Python
Django框架首页和登录页分离操作示例
2019/05/28 Python
pygame实现俄罗斯方块游戏(基础篇3)
2019/10/29 Python
Python使用pyyaml模块处理yaml数据
2020/04/14 Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
2020/09/25 Python
HTML5 移动页面自适应手机屏幕四类方法总结
2017/08/17 HTML / CSS
专业销售业务员求职信
2013/11/18 职场文书
家长会学生家长演讲稿
2013/12/29 职场文书
中学生学雷锋活动心得体会
2014/03/10 职场文书
街道党风廉政建设调研报告
2015/01/01 职场文书
如何写一份具有法律效力的借款协议书?
2019/07/02 职场文书
详解Nginx 工作原理
2021/03/31 Servers
Python中else的三种使用场景
2021/06/16 Python
Oracle中日期的使用方法实例
2022/07/07 Oracle