·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> php网站开发 >> php基础练习--目录操作

php基础练习--目录操作

作者:佚名      php网站开发编辑:admin      更新时间:2022-07-23
php基础练习--目录操作

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.'/'.$file;            if ($file != '.' && $file != '..') {                if (is_dir($path)) {                    listdir($path);                } else {                    echo $file."<br>";                }            }        }        closedir($ds);    }    listdir($dirname);
listdir

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

<?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);
copydir

核心: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);
deldir

核心:注意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);
dirsize

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