title: Recursively counting files with PHP
body: <p>Simple question for a newb and my Google-Fu is failing me. Using PHP, how can you count the number of files in a given directory, including any sub-directories (and any sub-directories they might have, etc.)? e.g. if directory structure looks like this:</p>
  
  <pre>
  /Dir_A/  
  /Dir_A/File1.blah  
  /Dir_A/Dir_B/  
  /Dir_A/Dir_B/File2.blah  
  /Dir_A/Dir_B/File3.blah  
  /Dir_A/Dir_B/Dir_C/  
  /Dir_A/Dir_B/Dir_C/File4.blah  
  /Dir_A/Dir_D/  
  /Dir_A/Dir_D/File5.blah
  </pre>
  
  <p>The script should return with '5' for "./Dir_A".</p>
  
  <p>I've cobbled together the following but it's not quite returning the correct answer, and I'm not sure why:</p>
  
  <pre>
  function getFilecount( $path = '.', $filecount = 0, $total = 0 ){  
      $ignore = array( 'cgi-bin', '.', '..', '.DS_Store' );  
      $dh = @opendir( $path );  
      while( false !== ( $file = readdir( $dh ) ) ){  
          if( !in_array( $file, $ignore ) ){  
              if( is_dir( "$path/$file" ) ){  
                  $filecount = count(glob( "$path/$file/" . "*"));  
                  $total += $filecount;  
                  echo $filecount; /* debugging */
                  echo " $total"; /* debugging */
                  echo " $path/$file<br />"; /* debugging */
                  getFilecount( "$path/$file", $filecount, $total);  
              }  
          }  
      }  
      return $total;  
  }  
  </pre>
  
  <p>I'd greatly appreciate any help.</p>