file
(PHP 4, PHP 5, PHP 7, PHP 8)
file — Liest eine komplette Datei in ein Array
Beschreibung
$filename
, int $flags
= 0, ?resource $context
= null
): array|falseLiest 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.
TippWenn 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
-
-
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
Erzeugt einen Fehler der Stufe E_WARNING
, wenn die
Datei nicht existiert.
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
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