fwrite / fputs în PHP

Scrie un text într-un fișier deschis cu fopen. fputs este același lucru, cu alt nume.

Sintaxă
fwrite($stream, string $data, ?int $length = null): int|false

Ce face fwrite / fputs

fwrite scrie textul la poziția curentă din fișier și mută cursorul după el. Unde ajunge textul depinde de modul în care ai deschis fișierul: la început cu "w", la final cu "a".

fputs este un alias: face exact același lucru. fwrite nu adaugă linie nouă singur, deci pui tu "\n" sau PHP_EOL.

Parametri

Parametru Descriere
$stream Resursa returnată de fopen.
$data Textul scris.
$length Opțional. Scrie cel mult atâția octeți din text.

Ce returnează

Numărul de octeți scriși sau false la eroare.

Exemple

Exemplul 1: Scriere cu numărul de octeți

<?php
$f = fopen("salut.txt", "w");
$octeti = fwrite($f, "Bună ziua!");
fclose($f);

echo "Am scris $octeti octeți: " . file_get_contents("salut.txt");

Rezultat

Am scris 11 octeți: Bună ziua!

Exemplul 2: Mai multe linii, cu fputs

<?php
$produse = ["telefon" => 1299, "husă" => 39, "încărcător" => 79];

$f = fopen("preturi.txt", "w");
foreach ($produse as $nume => $pret) {
    fputs($f, "$nume: $pret lei\n");
}
fclose($f);

echo file_get_contents("preturi.txt");

Rezultat

telefon: 1299 lei
husă: 39 lei
încărcător: 79 lei

Greșeli frecvente

  • Te aștepți ca fiecare fwrite să înceapă un rând nou. Textele se lipesc unul de altul dacă nu adaugi \n.
  • Nu verifici rezultatul pe un disc plin sau fără drept de scriere. fwrite returnează false sau un număr mai mic decât lungimea textului.

Comenzi înrudite

  • fopen / fclose: Deschide un fișier pentru citire sau scriere și returnează o resursă; fclose îl închide.
  • file_put_contents: Scrie un text într-un fișier. Creează fișierul dacă nu există.
  • fread: Citește un număr dat de octeți dintr-un fișier deschis.
  • flock: Blochează un fișier ca două scripturi să nu îl modifice în același timp.