note 119231 added to function.glob
| From: | sebastian dot wasser at gmail dot com | Date: | Sat, 23 Apr 2016 11:50:25 +0000 |
| Subject: | note 119231 added to function.glob | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-205307@lists.php.net to get a copy of this message | ||
I created a rglob function to support a '/**/' wildcard. You can even set the order to
post-order or pre-order traversal.
<?php
function rglob ($pattern, $flags = 0, $traversePostOrder = false) {
// Keep away the hassles of the rest if we don't use the wildcard anyway
if (strpos($pattern, '/**/') === false) {
return glob($pattern, $flags);
}
$patternParts = explode('/**/', $pattern);
// Get sub dirs
$dirs = glob(array_shift($patternParts) . '/*', GLOB_ONLYDIR | GLOB_NOSORT);
// Get files for current dir
$files = glob($pattern, $flags);
foreach ($dirs as $dir) {
$subDirContent = rglob($dir . '/**/' . implode('/**/', $patternParts), $flags,
$traversePostOrder);
if (!$traversePostOrder) {
$files = array_merge($files, $subDirContent);
} else {
$files = array_merge($subDirContent, $files);
}
}
return $files;
};
?>
----
Server IP: 72.52.91.14
Probable Submitter: 79.237.24.28
----
Manual Page -- http://php.net/manual/en/function.glob.php
Edit -- https://master.php.net/note/edit/119231
Del: integrated -- https://master.php.net/note/delete/119231/integrated
Del: useless -- https://master.php.net/note/delete/119231/useless
Del: bad code -- https://master.php.net/note/delete/119231/bad+code
Del: spam -- https://master.php.net/note/delete/119231/spam
Del: non-english -- https://master.php.net/note/delete/119231/non-english
Del: in docs -- https://master.php.net/note/delete/119231/in+docs
Del: other reasons-- https://master.php.net/note/delete/119231
Reject -- https://master.php.net/note/reject/119231
Search -- https://master.php.net/manage/user-notes.php