网络编程 
首页 > 网络编程 > 浏览文章

php目录操作实例代码

(编辑:jimmy 日期: 2024/11/19 浏览:3 次 )

复制代码 代码如下:
<?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无限遍历目录示例
一句话新闻
一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?