Nimets: Suchfunktion für ein Archiv funktioniert nicht

Beitrag lesen

Hallo zusammen,

ich habe folgendes Problem:
aus einem Archiv mit vielen Dateien (~800, meistens HTML, aber auch andere) möchte ich in den HTML-Dateien mit der unten stehenden Funktion nach dem Vorkommen des Strings $string suchen.
Leider scheitert mein Script schon an dem Öffnen der Dateien. Während die while-Schleife noch ordnungsgemäß alle HTML-Dateien ausgibt, meldet is_file bei den meisten Fällen false, was ich nicht verstehen kann. Denn die Dateien sind definitiv alle in dem Archiv und als ich mal per Hand $file eingetragen habe, wurde die Datei auch gefunden.
Weiß jemand, woran das liegen kann? Was habe ich falsch gemacht?

  
function suche_archiv($string){  
  if ($handle = opendir('archiv')) {  
    while (false !== ($file = readdir($handle))) {  
      //if (!is_file($file)) continue;  
      if (ereg("(.+)\.(htm|html)",$file)) {  
        echo "$file: ";  
        $datei = fopen($file,"r");  
        $inhalt = fread ($datei, filesize ($file));  
        fclose ($datei);  
        if (!is_file($file)) {  
          echo "keine gueltige Datei";  
        } else echo "guetige Datei";  
        if (strstr($inhalt,$string)) {  
          $ergebnis.= $file."<br>\r\n";  
        }  
        echo "<br>";  
      }  
    }  
    closedir($handle);  
  }  
  return $ergebnis;  
}