Hallo,
ich habe mir ein kleines Script geschrieben, welches einen Verzeichnisbaum nach Textdateien und dann den Inhalt nach einem vorhandenen Text durchsucht. Ich habe das Script ein wenig dokumentiert, damit man sieht, wo ich den falschen wert erhalte.
Hier das Script.
Hier eine Passage aus der Ausgabe:
Vielleicht hat ja jemand eine Idee.
Viele Grüße Salvatore
ich habe mir ein kleines Script geschrieben, welches einen Verzeichnisbaum nach Textdateien und dann den Inhalt nach einem vorhandenen Text durchsucht. Ich habe das Script ein wenig dokumentiert, damit man sieht, wo ich den falschen wert erhalte.
Hier das Script.
PHP-Code:
<?php
class Verzeichnis {
function dir_rekursiv($verzeichnis, $filter) {
// Das dient nur dem Test, ob meine Birne matsche ist ;-)
// Hier nehme ich die gleichen Strings, die auch weiter unten
// beim Abarbeiten der Schleife ausgegeben werden.
// Im Test bekomme ich das richtige Resultat !!
$test1 = "Z:/Ultrastar/songs/Deutsch/Pur - Ein Graues Haar/";
$test2 = "Deutsch";
if (strstr($test1, $test2)) {
echo $test1.' - <strong>'.$test2.'</strong>';
echo ' <strong>RICHTIG !</strong><br />';
} else {
echo $test1.' - <strong>'.$test2.'</strong>';
echo ' <strong>FALSCH !</strong><br />';
}
// TESTENDE
$handle = opendir($verzeichnis);
while ($datei = readdir($handle)){
if ($datei != "." && $datei != "..") {
if (is_dir($verzeichnis.$datei)) {
// Wenn Verzeichniseintrag ein Verzeichnis ist
// Erneuter Funktionsaufruf, um das aktuelle Verzeichnis auszulesen
$this->dir_rekursiv($verzeichnis.$datei.'/', $filter);
}
else {
// Wenn Verzeichnis-Eintrag eine Datei ist, diese ausgeben
if (strstr($datei, $filter)) {
echo '<strong>Dateipfad (komplett): </strong>'.$verzeichnis.$datei.'<br />';
$fp = fopen($verzeichnis.$datei,"r");
if ($fp) {
$i = 0;
$vorhanden = false;
while(!feof($fp) && ($i < 10)){
$text = fgets($fp);
if (strstr($text, '#EDITION')) {
$text = explode(':', $text);
$verz = (string)$verzeichnis;
// Hier wird geprüft, ob die Edition auch dem entsprechendem Ordner entspricht
// Also in meinem Beispiel, ob der Text
// 'Deutsch' im Text 'Z:/Ultrastar/songs/Deutsch/Pur - Ein Graues Haar/'
// vorhanden ist
// Und als Resultat bekomme ich FALSCH !
// Was nicht richtig ist *heul*
if (strstr($verzeichnis, $text[1])) {
echo '<strong>Verzeichnis:</strong> '.$verzeichnis.'<strong><br /><strong>Edition:</strong> '.$text[1].'</strong>';
echo ' >>> <strong>RICHTIG !</strong><br />';
} else {
echo '<strong>Verzeichnis:</strong> '.$verzeichnis.'<strong><br /><strong>Edition:</strong> '.$text[1].'</strong>';
echo ' >>> <strong>FALSCH !</strong><br />';
}
$i = 9;
$vorhanden = true;
}
$i++;
}
if (!$vorhanden) {echo '<strong>FEHLT !</strong><br />';}
echo '<br />';
fclose($fp);
}
}
}
}
}
closedir($handle);
}
}
$ausgabe = new Verzeichnis();
$ausgabe->dir_rekursiv("Z:/Ultrastar/songs/", ".txt");
?>
Z:/Ultrastar/songs/Deutsch/Pur - Ein Graues Haar/ - Deutsch RICHTIG !
Dateipfad (komplett): Z:/Ultrastar/songs/Deutsch/Pur - Ein Graues Haar/PUR - Ein Graues Haar.txt
Verzeichnis: Z:/Ultrastar/songs/Deutsch/Pur - Ein Graues Haar/
Edition: Deutsch >>> FALSCH !
Dateipfad (komplett): Z:/Ultrastar/songs/Deutsch/Pur - Ein Graues Haar/PUR - Ein Graues Haar.txt
Verzeichnis: Z:/Ultrastar/songs/Deutsch/Pur - Ein Graues Haar/
Edition: Deutsch >>> FALSCH !
Viele Grüße Salvatore
Kommentar