Suchfunktion für ein Archiv funktioniert nicht
Nimets
- php
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;
}
Lieber Nimets,
kenne ich Dich aus KA?
Die Funktion readdir liefert Dir keinen kompletten Pfad. Du musst den Pfad zum entsprechenden Verzeichnis mit dem Verzeichniseintrag zusammensetzen, damit die Datei vom Script "gefunden" werden kann!
Liebe Grüße,
Felix Riesterer.
Lieber Felix,
vielen Dank für die schnelle Antwort - da die Dateien merkwürdiger Weise auch im übergeordneten Ordner waren, habe ich daran überhaupt nicht gedacht (weil ich eben einige Dateien gefunden hatte...)
Und ich glaube wir kennen uns nicht - sorry ;)
Liebe Grüße
hi Felix,
Lieber Nimets,
kenne ich Dich aus KA?
Du meinst wohl mich ;)
Nur echt mit 2 M.
Ich habe mittlerweile auch endlich die Lösung für das Refresh-Problem bei Formularen gefunden ;))
http://dj-tut.de/z_test/form/
Nicht schön aber selten!
mfg