home *** CD-ROM | disk | FTP | other *** search
/ Cricao de Sites - 650 Layouts Prontos / WebMasters.iso / Servidores / xampp-win32-1.6.7-installer.exe / phpMyAdmin / libraries / file_listing.php < prev    next >
Encoding:
PHP Script  |  2008-06-23  |  2.5 KB  |  95 lines

  1. <?php
  2. /* vim: set expandtab sw=4 ts=4 sts=4: */
  3. /**
  4.  * Functions for listing directories
  5.  *
  6.  * @version $Id: file_listing.php 11001 2007-12-15 14:30:37Z lem9 $
  7.  */
  8.  
  9. /**
  10.  * Returns array of filtered file names
  11.  *
  12.  * @param   string  directory to list
  13.  * @param   string  regular expression to match files
  14.  * @returns array   sorted file list on success, FALSE on failure
  15.  */
  16. function PMA_getDirContent($dir, $expression = '')
  17. {
  18.     if (file_exists($dir) && $handle = @opendir($dir)) {
  19.         $result = array();
  20.         if (substr($dir, -1) != '/') {
  21.             $dir .= '/';
  22.         }
  23.         while ($file = @readdir($handle)) {
  24.         // for PHP < 5.2.4, is_file() gives a warning when using open_basedir
  25.         // and verifying '..' or '.'
  26.             if ('.' != $file && '..' != $file && is_file($dir . $file) && ($expression == '' || preg_match($expression, $file))) {
  27.                 $result[] = $file;
  28.             }
  29.         }
  30.         @closedir($handle);
  31.         asort($result);
  32.         return $result;
  33.     } else {
  34.         return FALSE;
  35.     }
  36. }
  37.  
  38. /**
  39.  * Returns options of filtered file names
  40.  *
  41.  * @param   string  directory to list
  42.  * @param   string  regullar expression to match files
  43.  * @param   string  currently active choice
  44.  * @returns array   sorted file list on success, FALSE on failure
  45.  */
  46. function PMA_getFileSelectOptions($dir, $extensions = '', $active = '')
  47. {
  48.     $list = PMA_getDirContent($dir, $extensions);
  49.     if ($list === FALSE) {
  50.         return FALSE;
  51.     }
  52.     $result = '';
  53.     foreach ($list as $key => $val) {
  54.         $result .= '<option value="'. htmlspecialchars($val) . '"';
  55.         if ($val == $active) {
  56.             $result .= ' selected="selected"';
  57.         }
  58.         $result .= '>' . htmlspecialchars($val) . '</option>' . "\n";
  59.     }
  60.     return $result;
  61. }
  62.  
  63. /**
  64.  * Get currently supported decompressions.
  65.  *
  66.  * @returns string | separated list of extensions usable in PMA_getDirContent
  67.  */
  68. function PMA_supportedDecompressions()
  69. {
  70.     global $cfg;
  71.  
  72.     $compressions = '';
  73.  
  74.     if ($cfg['GZipDump'] && @function_exists('gzopen')) {
  75.         if (!empty($compressions)) {
  76.             $compressions .= '|';
  77.         }
  78.         $compressions .= 'gz';
  79.     }
  80.     if ($cfg['BZipDump'] && @function_exists('bzopen')) {
  81.         if (!empty($compressions)) {
  82.             $compressions .= '|';
  83.         }
  84.         $compressions .= 'bz2';
  85.     }
  86.     if ($cfg['ZipDump'] && @function_exists('gzinflate')) {
  87.         if (!empty($compressions)) {
  88.             $compressions .= '|';
  89.         }
  90.         $compressions .= 'zip';
  91.     }
  92.  
  93.     return $compressions;
  94. }
  95.