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 相关文章推荐
基于PHP生成静态页的实现方法
May 10 PHP
单台服务器的PHP进程之间实现共享内存的方法
Jun 13 PHP
php正则匹配html中带class的div并选取其中内容的方法
Jan 13 PHP
浅谈php自定义错误日志
Feb 13 PHP
php+ajax实现无刷新数据分页的办法
Nov 02 PHP
PHP文件上传类实例详解
Apr 08 PHP
PHP将MySQL的查询结果转换为数组并用where拼接的示例
May 13 PHP
PHP+iframe图片上传实现即时刷新效果
Nov 18 PHP
Zend Framework入门教程之Zend_Config组件用法详解
Dec 09 PHP
购物车实现的几种方式优缺点对比
May 02 PHP
Laravel6.0.4中将添加计划任务事件的方法步骤
Oct 15 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
Dec 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
PHP+ajax 无刷新删除数据
2010/02/20 PHP
php实现的xml操作类
2016/01/15 PHP
php上传图片获取路径及给表单字段赋值的方法
2016/01/23 PHP
PHP 7.0新增加的特性介绍
2017/06/08 PHP
img的onload的另类用法
2008/01/10 Javascript
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
计算世界完全对称日的js代码,粗糙版
2011/11/04 Javascript
Jquery同辈元素选中/未选中效果的实例代码
2013/08/01 Javascript
wap手机图片滑动切换特效无css3元素js脚本编写
2014/07/28 Javascript
解决jquery实现的radio重新选中的问题
2015/07/03 Javascript
js实现的二级横向菜单条实例
2015/08/22 Javascript
js点击按钮实现水波纹效果代码(CSS3和Canves)
2016/09/15 Javascript
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
2017/04/10 jQuery
JS 组件系列之BootstrapTable的treegrid功能
2017/06/16 Javascript
JavaScript实现随机数生成器(去重)
2017/10/13 Javascript
对angular 监控数据模型变化的事件方法$watch详解
2018/10/09 Javascript
vue中的过滤器及其时间格式化问题
2020/04/09 Javascript
vue集成一个支持图片缩放拖拽的富文本编辑器
2021/01/29 Vue.js
Python入门之后再看点什么好?
2018/03/05 Python
基于Python Numpy的数组array和矩阵matrix详解
2018/04/04 Python
python监控文件并且发送告警邮件
2018/06/21 Python
浅谈python str.format与制表符\t关于中文对齐的细节问题
2019/01/14 Python
Python生成MD5值的两种方法实例分析
2019/04/26 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
2019/08/09 Python
详解使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件
2019/08/23 Python
Python手绘可视化工具cutecharts使用实例
2019/12/05 Python
python利用JMeter测试Tornado的多线程
2020/01/12 Python
解决python使用list()时总是报错的问题
2020/05/05 Python
宏碁西班牙官网:Acer西班牙
2021/01/08 全球购物
城市规划毕业生求职信
2013/10/10 职场文书
装修设计师求职信
2014/02/26 职场文书
项目采购员岗位职责
2014/04/15 职场文书
小学红领巾广播稿(3篇)
2014/09/13 职场文书
高考学习决心书
2015/02/04 职场文书
工作感言一句话
2015/08/01 职场文书
2016领导干部廉洁自律心得体会
2016/01/13 职场文书