Dateien im Verzeichnis zählen

Iches

Erfahrenes Mitglied
Hello

ich hab ein Script geschrieben das eigendlich alle Dateien zählen soll mit unterverzeichnis nur irgendwie klapt es nicht bzw. er hört nicht auf zu rechnen.

hier der code:
PHP:
<?php
function count_till_is_end($dir) {
$dh  = opendir($dir); 
while (false !== ($filename = readdir($dh))) { 
if(!is_dir($filename)) {  
if( $filename != "." && $filename != "..") {
           $var =  substr($filename, 0, 3); 
           $var_1 = strrpos($filename, ".");
               $var_2 = strlen($filename);
           $var1 =  substr($filename, $var_1, $var_2);
           if($var!="th_") { 
           if(($var1==".jpg")||($var1==".JPG")) { 
   $hg++; } } } } else { 
   count_till_is_end($filename);
   }

}
return($hg);
}
?>

danke
 
PHP:
<?php
function count_till_is_end($dir) {
  $dh  = opendir($dir);
  while (false !== ($filename = readdir($dh))) {
    if(!is_dir($dir.'/'.$filename)) {
      if( $filename != "." && $filename != "..") {
        $var =  substr($filename, 0, 3);
        $var_1 = strrpos($filename, ".");
        $var_2 = strlen($filename);
        $var1 =  substr($filename, $var_1, $var_2);
        if($var!="th_") {
          if(($var1==".jpg")||($var1==".JPG")) {
            $hg++;
          }
        }
      }
    } else {
      $hg += count_till_is_end($dir.'/'.$filename);
    }
  }
  return($hg);
}
?>
 
In dem Else-Zweig, wo Du die Funktion wieder aufrufst solltest Du vielleicht auch diese Prüfung machen:
PHP:
      if( $filename != "." && $filename != "..") {
Wenn ich richtig informiert bin, sind . und .. nämlich "Verzeichnisse" und keine Dateien.
Das könnte auch eine Endlosschleife produzieren.
Ansonsten natürlich auch die Änderungen, die snuu vrogeschlagen hat.
 
PHP:
function count_till_is_end($dir) {
  $dh  = opendir($dir);
  while (false !== ($filename = readdir($dh))) {
    if( $filename != "." && $filename != "..") {
      if(!is_dir($dir.'/'.$filename)) {
        $var =  substr($filename, 0, 3);
        $var_1 = strrpos($filename, ".");
        $var_2 = strlen($filename);
        $var1 =  substr($filename, $var_1, $var_2);
        if($var!="th_") {
          if(($var1==".jpg")||($var1==".JPG")) {
            $hg++;
          }
        }
      } else {
        $hg += count_till_is_end($dir.'/'.$filename);
      }
    }
  }
  return($hg);
}
 
Zurück