Archive for January 27th, 2007

Listing de fichiers

Sait-on jamais, ça pourrai servir... Deux petites fonctions pour lister un répertoire, ou lister un répertoire récursivement

PHP:
  1. function ls($dir, $with_prefix = false) {
  2.     if (substr($dir, -1) !== "/") $dir .= "/";
  3.  
  4.     unset($dirs);   $dirs  = array();
  5.     unset($files)$files = array();
  6.  
  7.     if (@is_readable($dir) and @is_dir($dir)) {
  8.         if ($dh = opendir($dir)) {
  9.             while (($file = readdir($dh)) !== false) {
  10.                 if (@is_readable($dir.$file)) {
  11.                     if (is_dir($dir.$file)) $dirs[] = ($with_prefix) ? $dir.$file : $file;
  12.                     else $files[] = ($with_prefix) ? $dir.$file : $file;
  13.                 }
  14.             }
  15.             closedir($dh);
  16.         }
  17.     }
  18.     else return false;
  19.    
  20.     unset($dirs[0]);
  21.     unset($dirs[1]);
  22.    
  23.     return array($dirs, $files);
  24. }
  25.  
  26. function recursive_ls ($dir, $with_prefix = false) {
  27.     if (substr($dir, -1) !== "/") $dir .= "/";
  28.    
  29.     if (($map_elements = ls ($dir, false)) !== false) {
  30.         unset ($map); $map = array();
  31.        
  32.         if (!empty($map_elements[0])) {
  33.             foreach ($map_elements[0] as $dirname) {
  34.                 $map[($with_prefix) ? $dir.$dirname : $dirname] = recursive_ls($dir.$dirname, $with_prefix);
  35.             }
  36.         }
  37.        
  38.         if ($with_prefix and !empty($map_elements[1])) {
  39.             foreach ($map_elements[1] as $id => $value) {
  40.                 $map_elements[1][$id] = $dir . $value;
  41.             }
  42.         }
  43.        
  44.         return array_merge ($map, array_flip ($map_elements[1]));
  45.     }
  46.    
  47.     return false;
  48. }

Add comment January 27th, 2007


Calendar

January 2007
M T W T F S S
« Dec   Feb »
1234567
891011121314
15161718192021
22232425262728
293031  

Posts by Month

Posts by Category

Wikipedia Affiliate Button