Liebe Mitdenker, liebe Wissende, liebe Neugierige,
Ich habe folgendes Problem und ich komme einfach nicht dahinter, worin dessen Ursache liegt:
Ich lese unterschiedliche Textdateien ein, deren Namen der anzuzeigenden Seite (Variable $seite) entspricht, und verarbeite anschließend den Inhalt:
<?php if ($seite != "media" && $seite != "community") { require ("dateiEinlesen.php"); $inhalt = dateiEinlesen ($seite); // [1] if ($inhalt != -1) // Datei wurde gefunden { // [2] if ($inhalt != 0) // Datei ist nicht leer { $datensaetze = explode ("[ENDE]", $inhalt); $anzahlEintraege = count ($datensaetze); } else echo 'Datei "' . $seite . '.txt" hat keinen Inhalt<br>'; } else echo 'Datei "' . $seite . '.txt" nicht gefunden<br>'; } switch ($seite) { case "home": { if ($anzahlEintraege > 1) // count nach explode bei leerem String ergibt 1 { } break; } case "band": { // [3] if ($anzahlEintraege > 1) { } break; } ...weitere "case"-Fälle... } ?>
Die Datei "dateiEinlesen.php" beinhaltet lediglich folgende Funktion, die sich um das Einlesen der jeweiligen Textdatei kümmert und -1 zurückliefert, wenn die Datei nicht gefunden wurde, 0 bei leerem Inhalt bzw. den eingelesenen Inhalt:
<?php function dateiEinlesen ($datei) { clearstatcache(); $datei = "txt/" . $datei . ".txt"; if (!!@filemtime ($datei)) { if (0 != filesize ($datei)) return file_get_contents ($datei); else return 0; } else return -1; } ?>
Das Einlesen und Verarbeiten der Textdatei "home.txt" klappt einwandfrei, auch kann ich den unbearbeiteten Inhalt der Textdatei "band.txt" bei den Marken [1], [2] und seltsamerweise sogar bei [3] ausgeben lassen, aber es greift, warum auch immer, der "else"-Zweig der Abfrage nach Marke [2] und demnach wirft er mir bei der Abfrage nach Marke [3] einen Fehler.
und wie lautet dieser Fehler?
was bedeutet "!!@filetime"?
Die Textdateien liegen alle im selben Verzeichnis, auch die Benennungen stimmen.
Wo liegt der Fehler?
Spirituelle Grüße
Euer Robert
robert.r@online.de
Möge der wahre Forumsgeist ewig leben!