php目录操作实例代码

复制代码 代码如下:


<?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.'https://www.jb51.net/'.$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."https://www.jb51.net/".$file;
            $dstpath = $dstdir."https://www.jb51.net/".$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.'https://www.jb51.net/'.$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.'https://www.jb51.net/'.$file;
            if ($file != '.' && $file != '..') {
                if(is_dir($path)) {
                    dirsize($path);
                } else {
                    $tot = $tot + filesize($path);
                }
            }
        }
        return $tot;
        closedir($ds);
    }

echo dirsize($dirname);


核心:通过判断$tot在哪里返回,理解递归函数。

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/09c328c19729998243d862cf4f48bc46.html