Auge: Probleme mit der Funktion file()

Beitrag lesen

Hallo

ich habe Probleme mit der Funktion file(). Die löst keinen Error aus, wenn die Datei, oder das Verzeichnis ($file) nicht vorhanden sind.

… ganz so, wie die Doku zu file es sagt.

Emits an E_WARNING level error if the file does not exist.

Du solltest dir während der Entwicklung eines Skripts immer die Systemmeldungen, die PHP ausspuckt, anzeigen lassen. Das verschafft Klarheit über die Ursachen diverser Fehler, die sonst nur eine (teilweise) leere Ausgabe verursachen.

Schreibe dazu folgenden Code an den Anfang des Skripts (bei Arbeit mit Includes ins Hauptskript).

error_reporting(E_ALL);
ini_set('display_errors', 1);

Wenn das Skript in den Produktiveinsatz geht, muss der Code, so, wie er da steht, wieder entfernt werden. Eine Fehlerausgabe hat dann in ein internes Logfile zu gehen.

if (false === ($loglines = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES)))
{
    exit (error_get_last()); 
}

Es kommt dann nur eine Seite, auf der 'Array' angezeigt wird.

Sowohl der Umstand, dass du nicht in deinem exit-Block landest, als auch die Ausgabe von Array spricht dafür, dass da eben doch Daten drinstecken, die ausgelesene Datei also doch vorhanden ist.

Ich lasse am Anfang den ersten Datensatz mit print_r($loglines[0]) ausgeben.

Ich würde mir gleich den gesamten Inhalt mit $check = print_r($loglines, true); und an anderer Stelle echo "<pre>". $check ."</pre>"; ausgeben lassen. Das true sorgt dafür, dass keine sofortige Ausgabe an der Stelle, an der der Code notiert ist, erfolgt, sondern die Ausgabe tatsächlich in einer Variable zwischengespeichert wird.

Tschö, Auge

--
„Habe ich mir das nur eingebildet, oder kann der kleine Hund wirklich sprechen?“ fragte Schnapper. „Er behauptet, nicht dazu imstande zu sein“ erwiderte Victor. Schnapper zögerte (…) „Nun …“ sagte er schließlich, „ich schätze, er muss es am besten wissen.“ Terry Prattchett, Voll im Bilde