Files
Froxlor/lib/functions/filedir/function.findDirs.php
Michael Kaufmann (d00p) 1e5f80ace6 re-work findDirs()-function
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2014-12-16 15:14:57 +01:00

54 lines
1.6 KiB
PHP

<?php
/**
* This file is part of the Froxlor project.
* Copyright (c) 2003-2009 the SysCP Team (see authors).
* Copyright (c) 2010 the Froxlor Team (see authors).
*
* For the full copyright and license information, please view the COPYING
* file that was distributed with this source code. You can also view the
* COPYING file online at http://files.froxlor.org/misc/COPYING.txt
*
* @copyright (c) the authors
* @author Florian Lippert <flo@syscp.org> (2003-2009)
* @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Functions
*
*/
/**
* Returns an array of found directories
*
* This function checks every found directory if they match either $uid or $gid, if they do
* the found directory is valid. It uses recursive-iterators to find subdirectories.
*
* @param string $path the path to start searching in
* @param int $uid the uid which must match the found directories
* @param int $gid the gid which must match the found direcotries
*
* @return array Array of found valid pathes
*/
function findDirs($path, $uid, $gid) {
$_fileList = array ();
$path = makeCorrectDir($path);
// valid directory?
if (is_dir($path)) {
// create RecursiveIteratorIterator
$its = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path));
// check every file
foreach ($its as $fullFileName => $it) {
if ($it->isDir()
&& (fileowner($fullFileName) == $uid || filegroup($fullFileName) == $gid)
) {
$_fileList[] = makeCorrectDir(dirname($fullFileName));
}
}
}
return array_unique($_fileList);
}