file_exists
file_put_contents
Dateisystem
PHP Manual

# file_get_contents

(PHP 4 >= 4.3.0, PHP 5)

file_get_contents — Liest die gesamte Datei in einen String

### Beschreibung

string file_get_contents ( string `$filename` [, bool `$use_include_path` = false [, resource `$context` [, int `$offset` = -1 [, int `$maxlen` ]]]] )

Diese Funktion ist mit file() identisch, außer dass file_get_contents() die Datei in einem String zurückgibt, beginnend am angebenen `offset` über bis zu `maxlen` Bytes. Im Fehlerfall gibt file_get_contents() `FALSE` zurück.

file_get_contents() ist der empfohlene Weg, um den Inhalt einer Datei in einen String zu lesen. Es werden Techniken zur Speicherabbildung genutzt, um die Performance zu erhöhen, falls das Betriebssystem dies unterstützt.

> Hinweis:

> Falls Sie einen URI mit speziellen Zeichen, wie z.B. Leerzeichen, öffnen, müssen den URI mittels urlencode() enkodieren.

### Parameter-Liste

`filename`

  Name der zu lesenden Datei.

`use_include_path`

  > Hinweis:

  > Seit PHP 5 kann `FILE_USE_INCLUDE_PATH` genutzt werden, um eine Suche im include path auszulösen.

`context`

  Eine gültige Context-Ressource, die mit stream_context_create() erstellt wurde. Falls Sie keinen eigenen Context benötigen, können Sie diesen Parameter mit `NULL` überspringen.

`offset`

  Die Position, an der das Lesen im Originalstream beginnt.

  Das Springen an bestimmte Positionen (`offset`) wird nicht für entfernte Dateien unterstützt. Für kleine Offsets kann der Sprung funktionieren, allerdings ist dies nicht vorhersagbar, weil hierbei auf dem gepufferten Stream gearbeitet wird.

`maxlen`

  Maximale Länge der zu lesenden Daten. Standardmäßig wird solange gelesen bis das Ende der Datei erreicht wird. Beachten Sie, dass dieser Parameter auf den Stream angewendet wird, der durch die Filter verarbeitet wird.

### Rückgabewerte

Die Funktion gibt die gelesenen Daten zurück. Im Fehlerfall wird `FALSE` zurückgegeben..

### Fehler/Exceptions

Ein Fehler der Stufe `E_WARNING` wird generiert, wenn entweder `maxlength` kleiner als Null ist oder wenn `offset` die Länge des Streams überschreitet.

### Beispiele

Beispiel #1 Holen und Ausgeben des Quelltextes der Startseite einer Webseite

`<?php
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
?>`

Beispiel #2 Suche im include_path

`<?php
// <= PHP 5
$file = file_get_contents('./leute.txt', true);
// > PHP 5
$file = file_get_contents('./leute.txt', FILE_USE_INCLUDE_PATH);
?>`

Beispiel #3 Lesen einen Abschnitts einer Datei

`<?php
// Lese 14 Zeichen, beginnend mit dem 21. Zeichen
$section = file_get_contents('./leute.txt', NULL, NULL, 20, 14);
var_dump($section);
?>`

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

    string(14) "lle Bjori Ro"

Beispiel #4 Nutzung von Stream-Contexten

`<?php
// Erzeugen eines Streams
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar\r\n"
)
);
$context = stream_context_create($opts);
// Öffnen der Datei mit den oben definierten HTTP-Headern
$file = file_get_contents('http://www.example.com/', false, $context);
?>`

### Changelog

Version | Beschreibung
--- | ---
5.1.0 | Die `offset`- und `maxlen`-Parameter wurden hinzugefügt.
5.0.0 | Context-Unterstützung wurde hinzugefügt.

### Anmerkungen

> Hinweis: Diese Funktion ist binary safe.

Tipp

Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details dazu, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). 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 finden Sie unter Unterstützte Protokolle and Wrappers.

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. Ab PHP 4.3.7 kann PHP 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() - Liest eine komplette Datei in ein Array
- fgets() - Liest eine Zeile von der Position des Dateizeigers
- fread() - Liest Binärdaten aus einer Datei
- readfile() - Gibt eine Datei aus
- file_put_contents() - Write a string to a file
- stream_get_contents() - Reads remainder of a stream into a string
- stream_context_create() - Creates a stream context
- $http_response_header

file_exists
file_put_contents
Dateisystem
PHP Manual