Listing de fichiers
January 27, 2007
Sait-on jamais, ça pourrai servir… Deux petites fonctions pour lister un répertoire, ou lister un répertoire récursivement
function ls($dir, $with_prefix = false) {
if (substr($dir, -1) !== "/") $dir .= "/";
unset($dirs); $dirs = array();
unset($files); $files = array();
if (@is_readable($dir) and @is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if (@is_readable($dir.$file)) {
if (is_dir($dir.$file)) $dirs[] = ($with_prefix) ? $dir.$file : $file;
else $files[] = ($with_prefix) ? $dir.$file : $file;
}
}
closedir($dh);
}
}
else return false;
unset($dirs[0]);
unset($dirs[1]);
return array($dirs, $files);
}
function recursive_ls ($dir, $with_prefix = false) {
if (substr($dir, -1) !== "/") $dir .= "/";
if (($map_elements = ls ($dir, false)) !== false) {
unset ($map); $map = array();
if (!empty($map_elements[0])) {
foreach ($map_elements[0] as $dirname) {
$map[($with_prefix) ? $dir.$dirname : $dirname] = recursive_ls($dir.$dirname, $with_prefix);
}
}
if ($with_prefix and !empty($map_elements[1])) {
foreach ($map_elements[1] as $id => $value) {
$map_elements[1][$id] = $dir . $value;
}
}
return array_merge ($map, array_flip ($map_elements[1]));
}
return false;
}
Filed under: PHP
Leave a Comment
XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
RSS feed for comments on this post.