Skip to content

Instantly share code, notes, and snippets.

@pwlin
Created July 3, 2012 08:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pwlin/3038377 to your computer and use it in GitHub Desktop.
Save pwlin/3038377 to your computer and use it in GitHub Desktop.
RecursiveDirectoryIterator
<?php
// walks a directory recursively
// calls at each file $function with the file as argument and $baseArgs as additional arguments
function walkRecursivelyDF($dir, $function, $baseArgs) // depth first
{
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir),
RecursiveIteratorIterator::CHILD_FIRST);
foreach ($iterator as $path) {
if ($path->isDir()) {
if (substr($path->__toString(), -2) == '/.')
continue;
if (substr($path->__toString(), -3) == '/..')
continue;
}
call_user_func_array($function, array($path->__toString(), $baseArgs));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment