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