Hallo Auge,
Ich versuche das mal auseinanderzudröseln.
Die Datei existiert nicht, woraus die offensichtliche Warnung resultiert.
Warning: file(var/log/apache2/example.com/access.log): failed to open stream: No such file or directory in /var/www/example.com/htdocs/log/index.php on line 65Ich war fälschlicherweise davon ausgegangen, dass die Warnung alles ist, aber
filegeneriertsowohldie Warnung, gibt aber zusätzlich auchfalsezurück. Momit wir bei der mutmaßlichen Ursache für die Ausgabe von „Array“ sind.Notice: Array to string conversion in /var/www/example.com/htdocs/log/index.php on line 67 ArrayDie Ausgabe stammt, so vermute ich, nicht von
file, sondern aus der Fehlerbehandlung von Error[1], die laut dem Eröffnungsposting folgendermaßen aussieht.if (false === ($loglines = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES))) { exit (error_get_last()); }Der Code springt also sehr wohl in den Fehlerblock und beendet das Skript, wobei mit
error_get_lasteine Ausgabe derAusgabeFehlermeldungen erzeugt werden soll. Für die Funktionerror_get_lastist als Rückgabewert ein assoziatives Array angegeben. Dieses Array wird mitexit (error_get_last());aber in einen String umgewandelt, der schlicht „Array“ lautet.Kein Bug in
file, sondern, wenn ich richtig liege, nur eine falsche Benutzung vonerror_get_last.
Gut erläutert!
Ich zieh' meinen virtuellen Hut.
Ich habe stundenlang an der Lösung vorbeigeschaut.
Man muss also jedes Statement möglichst einzeln untersuchen, wenn so einen Fehler hat.
Selber Tschö
PHP-Freund
Dazu passt auch, dass der zweite Fehler zwei Zeilen nach dem ersten auftritt. ↩︎