PHPBuilder - getFiles



RSS Twitter
Snippets File Management

getFiles

by: Jorgen Horstink
|
April 28, 2003

Version: 1.0

Type: Function

Category: File Management

License: GNU General Public License

Description: Function that searches for certain files.



/** 
  *  Function that searches for certain files. 
  * 
  *  @param String sInitDir is the initializing directory, that's the 
  *                directory where to start 
  *  @param Array  aExtensions is an array with all extensions that 
  *                should be searched for 
  *  @param Array  aFiles is an array that returns all files that have 
  *                been found. 
  * 
  *  @explain First of all the function opens the initializing directory, 
  *  then it analyses all its entries. If an entry is "." or ".." the next 
  *  entry will be analysed. If an entry appears to be a directory, that 
  *  directory will be analyes and so on. So basicly, this is a perfect 
  *  example of a recursive function. 
  * 
  *  @example This example searches for all text documents in your document 
  *  root and sub directories 
  *   
  *  <code> 
  *    <?php 
  *      $aFiles = Array(); 
  *      getFiles($_ENV['DOCUMENT_ROOT'], Array ("txt", "doc"), $aFiles); 
  *      var_dump($aFiles); 
  *  </code> 
  * 
  *  @autor Jorgen Horstink <jorgen@webstores.nl> 
  */ 

function getFiles($sInitDir, $aExtensions, &$aFiles) 
{ 
   $hD = dir($sInitDir); 
   while (false !== ($sEntry = $hD->read())) { 
       if ($sEntry == "." || $sEntry == "..") { 
           continue; 
       } 
       $sPath = $sInitDir . "/" . $sEntry; 
       if (!is_dir($sPath)) { 
           $aParts = explode(".", $sEntry); 
           if (in_array($aParts[sizeOf($aParts) - 1], $aExtensions)) { 
               $aFiles[] = $sPath; 
           } 
       } else { 
           getFiles($sPath, $aExtensions, $aFiles); 
       } 
   } 
   $hD->close(); 
} 

?> 

Comment and Contribute

Your comment has been submitted and is pending approval.

Author:
Jorgen Horstink

Comment:



Comment:

(Maximum characters: 1200). You have characters left.