Exemplo n.º 1
0
function globRecursive($find, $path = '.')
{
    $dh = opendir($path);
    $found = glob("{$path}/{$find}");
    while (($file = readdir($dh)) !== false) {
        if ($file === '..') {
            continue;
        }
        if ($file === '.') {
            $found = array_merge($found, glob("{$path}/{$find}"));
        } elseif (is_dir("{$path}/{$file}")) {
            $found = array_merge($found, globRecursive($find, "{$path}/{$file}"));
        }
    }
    closedir($dh);
    return $found;
}
Exemplo n.º 2
0
function globRecursive($Pattern, $Flags = 0)
{
    // Search in the Current Directory
    $Return = glob($Pattern, $Flags);
    // FOREACHDIRECTORY
    // Search in ALL sub-directories.
    foreach (glob(dirname($Pattern) . '/*', GLOB_ONLYDIR | GLOB_NOSORT) as $Directory) {
        // This is a recursive function.
        // Usually, THIS IS VERY BAD.
        // For searching recursively however,
        // it does make some sense.
        if (strpos($Directory, '/_') === false) {
            $Return = array_merge($Return, globRecursive($Directory . '/' . basename($Pattern), $Flags));
        }
    }
    // FOREACHDIRECTORY
    return $Return;
}
Exemplo n.º 3
0
function globRecursive($path, $find)
{
    $dh = opendir($path);
    while (($file = readdir($dh)) !== false) {
        if (substr($file, 0, 1) == '.') {
            continue;
        }
        $rfile = "{$path}/{$file}";
        if (is_dir($rfile)) {
            foreach (globRecursive($rfile, $find) as $ret) {
                (yield $ret);
            }
        } else {
            if (fnmatch($find, $file)) {
                (yield $rfile);
            }
        }
    }
    closedir($dh);
}