Example #1
0
function list_files_recursive($base_dir, $cur_dir = '')
{
    $dir = rtrim($base_dir, '/');
    if (!empty($cur_dir)) {
        $dir .= '/' . $cur_dir;
    }
    $fns = @scandir($dir);
    if ($fns === false) {
        return false;
    }
    $ret = array();
    foreach ($fns as $fn) {
        if (in_array($fn, array('.', '..'))) {
            continue;
        }
        if (@is_dir($dir . '/' . $fn)) {
            $childs = list_files_recursive($base_dir, $cur_dir . '/' . $fn);
            if (is_array($childs)) {
                $ret = array_merge($ret, $childs);
            }
        } else {
            $ret[] = ltrim($cur_dir . '/' . $fn, '/');
        }
    }
    return $ret;
}
Example #2
0
function repo_get_all_files($repo_dir)
{
    $fns = list_files_recursive($repo_dir);
    if ($fns === false) {
        return false;
    }
    $ret = array();
    foreach ($fns as $fn) {
        // filter the actual git repository
        if (strpos($fn, '.git/') !== false) {
            continue;
        }
        // and .gitignore files
        if (strpos($fn, '.gitignore') !== false) {
            continue;
        }
        $ret[] = $fn;
    }
    return $ret;
}