Wie @deceze sagt, ist die Antwort im Allgemeinen nein. Caches auf Betriebssystemebene können jedoch kürzlich verwendete Dateien zwischenspeichern, um einen schnelleren Zugriff zu ermöglichen, aber ich würde nicht damit rechnen, dass diese verfügbar sind. Wenn Sie eine Datei, die mehrmals pro Anforderung gelesen wird, zwischenspeichern möchten, sollten Sie eine statische Variable als Cache in einer Wrapper-Funktion verwenden.
function my_file_read($filename) {
static $file_contents = array();
if (!isset($file_contents[$filename])) {
$file_contents[$filename] = file_get_contents($filename);
}
return $file_contents[$filename];
}
Aufruf my_file_read ($ filename) mehr Male nur die Datei von der Festplatte ein einziges Mal gelesen werden, werden nachfolgende Aufrufe den Wert aus den statischen Variablen innerhalb der Funktion lesen. Beachten Sie, dass Sie sich bei großen Dateien oder solchen, die nur einmal pro Seite verwendet werden, nicht auf diesen Ansatz verlassen sollten, da der von der statischen Variablen verwendete Speicher bis zum Ende der Anforderung bestehen bleibt. Den Inhalt von Dateien unnötigerweise in statischen Variablen zu halten, ist eine gute Möglichkeit, Ihr Skript zu einem Gedächtnisschwund zu machen.
Kurze Antwort: Nr. – deceze
file_get_contents ist im Grunde nur eine Abkürzung für fopen, fread, fclose usw. - also stelle ich mir vor, einen Dateizeiger zu öffnen und zu fischen, dass er nicht zwischengespeichert wird. – Jimbo
Gibt es in PHP eine Dateilesefunktion, in der ich $ cache = true wählen kann? – silkfire