Start · Sprachen · PHP · Referenz · file_put_contents

file_put_contents

Funktion

Schreibt einen String in eine Datei — mit einer einzigen Zeile statt fopen/fwrite/fclose.

seit PHP 5.0.0 Kategorie: io

Signatur

file_put_contents(string $filename, mixed $data, int $flags = 0, ?resource $context = null): int|false

Beschreibung

file_put_contents() ist die schnelle Kurzform für "Datei komplett überschreiben" oder "Zeile anhängen". Sie ersetzt drei Aufrufe (fopen, fwrite, fclose) durch einen.

Mit dem Flag FILE_APPEND wird angehängt statt überschrieben. Mit LOCK_EX wird während des Schreibens eine exklusive Datei-Sperre gehalten — Pflicht bei nebenläufigen Prozessen.

Parameter

Name Typ Default Beschreibung
$filename Pflicht string Pfad zur Zieldatei.
$data Pflicht mixed String, Array (wird mit "" gejoint) oder Stream-Resource.
$flags int 0 Bitmaske. Nützlich: FILE_APPEND, LOCK_EX.
$context resource|null null Stream-Context.

Rückgabewert

Typ
int|false
Beschreibung
Anzahl der geschriebenen Bytes bei Erfolg, false bei Fehler.

Beispiele

Datei überschreiben

<?php

file_put_contents(__DIR__ . '/log.txt', 'Hallo, Welt!');

Log-Zeile atomar anhängen

<?php

$line = sprintf("[%s] %s\n", date('c'), $message);
file_put_contents(__DIR__ . '/app.log', $line, FILE_APPEND | LOCK_EX);

Atomar schreiben (kein halbfertiger Zustand)

<?php

$tmp = tempnam(sys_get_temp_dir(), 'cache');
file_put_contents($tmp, $payload);
rename($tmp, $targetPath); // atomar auf demselben Filesystem

// Wichtig · Fallstricke

rename() ist auf demselben Dateisystem atomar — nutze das, wenn Leser die Datei niemals im "halb geschriebenen" Zustand sehen dürfen (Konfig-Files, Caches).

Siehe auch