readfile
(PHP 4, PHP 5)
readfile — Gibt eine Datei aus
Beschreibung
$filename
[, bool $use_include_path = false
[, resource $context
]] )Liest den Inhalt einer Datei und schreibt ihn in den Ausgabepuffer.
Parameter-Liste
-
filename -
Der Name der Datei, die gelesen werden soll.
-
use_include_path -
Sie können optional den zweiten Parameter benutzen und diesen auf
TRUEsetzen, wenn Sie auch im include_path nach der Datei suchen möchten. -
context -
Eine Stream-Kontext resource.
Rückgabewerte
Gibt die Anzahl der gelesenen Bytes einer Datei zurück. Wenn ein Fehler
auftritt wird FALSE zurückgegeben und, außer wenn die Funktion als
@readfile() aufgerufen wurde, wird eine Fehlermeldung
ausgegeben.
Beispiele
Beispiel #1 Einen Download unter Verwendung von readfile() erzwingen
<?php
$file = 'monkey.gif';
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
}
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
Anmerkungen
Hinweis:
readfile() weist für sich allein keine Speicherprobleme auf, selbst wenn große Dateien gesendet werden. Wenn Sie auf einen out-of-memory Fehler treffen, stellen Sie mit ob_get_level() sicher, dass die Ausgabepufferung deaktiviert ist.
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.
Hinweis: Die Kontext-Unterstützung gibt es seit PHP 5.0.0. Eine Beschreibung von Kontexten finden Sie unter Streams.
Siehe auch
- fpassthru() - Gibt alle verbleibenden Daten eines Dateizeigers direkt aus.
- file() - Liest eine komplette Datei in ein Array
- fopen() - Öffnet eine Datei oder URL
- include - include
- require - require
- virtual() - Führt eine Apache-Unteranfrage durch
- file_get_contents() - Liest die gesamte Datei in einen String
- Unterstützte Protokolle and Wrappers