Liest eine komplette Datei in ein Array

# file

(PHP 4, PHP 5, PHP 7, PHP 8)

file — Liest eine komplette Datei in ein Array

### Beschreibung

function file(string `$filename`, int `$flags` = 0, ?resource `$context` = `null`): array|false

Liest eine komplette Datei in ein Array.

> Hinweis:

> Sie können file_get_contents() benutzen, um den Inhalt einer Datei als String zurückgegeben zu bekommen.

### Parameter-Liste

`filename`

  Der Pfad zur Datei.

  Tipp

  Wenn fopen wrappers aktiviert ist, kann mit dieser Funktion eine URL als Dateiname verwendet werden. Mehr Details dazu, wie der Dateiname angeben werden muss, sind bei fopen() zu finden. Eine Liste der unterstützten URL-Protokolle, die Fähigkeiten der verschiedenen Wrapper, Hinweise zu deren Verwendung und Informationen zu den eventuell vorhandenen vordefinierten Variablen sind unter Unterstützte Protokolle und Wrapper zu finden.

`flags`

  Der optionale Parameter `flags` kann aus einer oder mehreren der folgenden Konstanten bestehen:

  `FILE_USE_INCLUDE_PATH`
    Suche nach der Datei im include_path
  `FILE_IGNORE_NEW_LINES`
    Entferne den Zeilenumbruch am Ende jedes Array-Elements.
  `FILE_SKIP_EMPTY_LINES`
    Überspringe leere Zeilen.
  `FILE_NO_DEFAULT_CONTEXT`
    Verwende nicht den Standardkontext.
`context`

  Eine Stream-Kontext-Ressource.

### Rückgabewerte

Gibt die Datei in einem Array zurück. Jedes Element des Arrays entspricht einer Zeile in der Datei, ohne dass der Zeilenumbruch entfernt wird. Im Fehlerfall gibt file() `false` zurück.

> Hinweis:

> Jede Zeile im resultierenden Array enthält den Zeilenumbruch, außer es wird `FILE_IGNORE_NEW_LINES` verwendet.

> Hinweis: Wenn PHP Zeilenendezeichen nicht richtig erkennt, entweder beim Lesen von Dateien auf einem Macintosh oder bei Dateien, die auf einem Macintosh erstellt wurden, kann die Option auto_detect_line_endings aktiviert werden.

### Fehler/Exceptions

Wenn `flags` ungültige Werte enthält, z. B. `FILE_APPEND`, wird seit PHP 8.3.0 ein ValueError ausgelöst.

Erzeugt einen Fehler der Stufe `E_WARNING`, wenn die Datei nicht existiert.

### Changelog

Version | Beschreibung
--- | ---
8.3.0 | Für alle ungültigen Werte von `flags` wird ein ValueError ausgelöst.

### Beispiele

Beispiel #1 file()-Beispiel

    <?php
    // Liest eine Datei in ein Array. Hier gehen wir über HTTP, um den
    // HTML-Quelltext einer URL zu bekommen
    $lines = file('http://www.example.com/');

    // Durchgehen des Arrays und Anzeigen des HTML-Quelltexts inkl. Zeilennummern
    foreach ($lines as $line_num => $line) {
        echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
    }

    // Benutzung des optionalen Parameters flags
    $trimmed = file('somefile.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
    ?>

### Anmerkungen

Warnung

Bei SSL-Verbindungen zusammen mit Microsoft IIS hält sich dieser Webserver nicht an das Protokoll und schließt die Verbindung ohne ein `close_notify` zu senden. PHP quittiert dieses Fehlverhalten mit "SSL: Fatal Protocol Error", wenn das Ende der Daten erreicht ist. Eine mögliche Lösung besteht darin, den Level von error_reporting herabzusetzten und Warnings auszuschließen. PHP kann fehlerhafte IIS-Serversoftware erkennen, wenn Sie einen Stream mit dem `https://`-Wrapper öffnen, und unterdrückt die Warnung für Sie. Falls Sie fsockopen() benutzen, um einen `ssl://`-Socket zu öffnen, müssen Sie selbst dafür Sorge tragen, die Warnung zu erkennen und diese zu unterdrücken.

### Siehe auch

- file_get_contents() - Liest die gesamte Datei in einen String
- readfile() - Gibt eine Datei aus
- fopen() - Öffnet eine Datei oder URL
- fsockopen() - Stellt eine Internet- oder Unix-Domain-Socket-Verbindung her
- popen() - Öffnet einen Dateizeiger für einen Prozess
- include - include
- stream_context_create() - Creates a stream context

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open