PHP-循环文件夹-yield-生成器

<?php
    define(DS, DIRECTORY_SEPARATOR);

    function gen_dir($path='.'){
        $c_dir = opendir($path);
        while ($dir = readdir($c_dir)){
            yield $dir;
        };
        closedir($c_dir);
    }

    function loop_dir($path='.'){
        foreach (gen_dir($path) as $dir){
            if (!in_array($dir, ['.', '..']) and is_dir($path.DS.$dir)){
                loop_dir($path.DS.$dir);
                continue;
            }
            echo $path.DS.$dir, "\r\n";
        }
    }

    loop_dir(__DIR__.DS);

  

posted @ 2020-11-25 15:30  何亮1  阅读(81)  评论(0编辑  收藏  举报