note 104824 modified in function.readdir by danbrown
| From: | danbrown@php.net | Date: | Sat, 09 Jul 2011 16:22:19 +0000 |
| Subject: | note 104824 modified in function.readdir by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-181377@lists.php.net to get a copy of this message | ||
Get all files on recursive directories in single array.
<?php
/*
* mrlemonade ~
*/
function getFilesFromDir($dir) {
$files = array();
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
if(is_dir($dir.'/'.$file)) {
$dir2 = $dir.'/'.$file;
$files[] = getFilesFromDir($dir2);
}
else {
$files[] = $dir.'/'.$file;
}
}
}
closedir($handle);
}
return array_flat($files);
}
function array_flat($array) {
foreach($array as $a) {
if(is_array($a)) {
$tmp = array_merge($tmp, array_flat($a));
}
else {
$tmp[] = $a;
}
}
return $tmp;
}
// Usage
$dir = '/data';
$foo = getFilesFromDir($dir);
print_r($foo);
?>
--was--
Get all files on recursive directories in single array.
/*
* mrlemonade ~
*/
function getFilesFromDir($dir) {
$files = array();
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
if(is_dir($dir.'/'.$file)) {
$dir2 = $dir.'/'.$file;
$files[] = getFilesFromDir($dir2);
}
else {
$files[] = $dir.'/'.$file;
}
}
}
closedir($handle);
}
return array_flat($files);
}
function array_flat($array) {
foreach($array as $a) {
if(is_array($a)) {
$tmp = array_merge($tmp, array_flat($a));
}
else {
$tmp[] = $a;
}
}
return $tmp;
}
// Usage
$dir = '/data';
$foo = getFilesFromDir($dir);
print_r($foo);
http://php.net/manual/en/function.readdir.php