Guten Abend,
erstmal Entschuldigung für den Fall, dass mein Beitrag, wie es die Vorschau befürchten lässt, trotz Angabe von "~~~" zerrissen ausgegeben werden sollte.
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.
Die Textdateien liegen alle im selben Verzeichnis, auch die Benennungen stimmen.
Wo liegt der Fehler?
Vielen lieben Dank für eure Hilfe und Gruß Enrico