Php iç içe dizin ve klasörleri tarama

Php iç içe dizin ve klasörleri tarama ve dosyaları listelemek için iki farklı fonksiyon göstereceğim, umarım dosya / klasör işlemlerinde işinize yarar.

function dizin_tara($dir, &$out = []) {
		$sun = scandir($dir);

		foreach ($sun as $a => $filename) {
			$way = realpath($dir . DIRECTORY_SEPARATOR . $filename);
			if (!is_dir($way)) {
				$out[] = $way;
			} else if ($filename != "." && $filename != "..") {
				dizin_tara($way, $out);
				$out[] = $way;
			}
		}

		return $out;
		}
$dir='yuklenenler'; // dizin/klasör yolu
print_r dizin_tara($dir);

ikinci fonksiyonumuzda ise glob kullandım.

    class tum_dosyalar {
        public $files = [];
        function __construct($folder) {
            $this->read($folder);           
        }
        function read($folder) {
            $folders = glob("$folder/*", GLOB_ONLYDIR);
            foreach ($folders as $folder) {
                //$this->files[] = $folder . "/";
                $this->read( $folder );
            }
            $files = array_filter(glob("$folder/*.{pdf}", GLOB_BRACE), 'is_file');
            foreach ($files as $file) {
                $this->files[] = $file;             
            }
        }
        function __toString() {
            return implode( " = ", $this->files );
        }
		}

echo new tum_dosyalar("tarama/2023");

Yorum yap