Ce face fprintf / vfprintf
fprintf funcționează ca printf, dar scrie în fluxul primit ca prim parametru: un fișier deschis cu fopen, STDOUT sau STDERR într-un script rulat din linia de comandă.
vfprintf face același lucru, dar primește valorile într-un tablou, ca vsprintf.
Parametri
| Parametru | Descriere |
|---|---|
$stream |
Fluxul în care se scrie (rezultatul lui fopen, STDOUT, STDERR). |
$format |
Șablonul, cu marcaje %s, %d, %.2f etc. |
$values |
Valorile care înlocuiesc marcajele (la vfprintf: un tablou). |
Ce returnează
Numărul de octeți scriși.
Exemple
Exemplul 1: Raport scris într-un fișier
<?php
$f = fopen("raport.txt", "w");
fprintf($f, "%-10s %8.2f lei\n", "Ianuarie", 1520.5);
vfprintf($f, "%-10s %8.2f lei\n", ["Februarie", 980]);
fclose($f);
echo file_get_contents("raport.txt");
Rezultat
Ianuarie 1520.50 lei
Februarie 980.00 lei
Exemplul 2: Mesaje de eroare într-un script de linie de comandă
Erorile trimise în STDERR nu se amestecă cu rezultatul normal al scriptului.
<?php
$fisier = "date.csv";
if (!file_exists($fisier)) {
fprintf(STDERR, "Eroare: fișierul %s lipsește\n", $fisier);
exit(1);
}
Rezultat posibil (diferă la fiecare rulare)
Eroare: fișierul date.csv lipsește
Greșeli frecvente
- Dai numele fișierului în loc de fluxul deschis:
fprintf("raport.txt", ...). PrimeștiTypeError. Deschide întâi fișierul cufopen.
Comenzi înrudite
printf: Afișează un text formatat după un șablon, de exemplu numere cu un anumit număr de zecimale.vsprintf / vprintf: Construiește (vsprintf) sau afișează (vprintf) un text formatat după un șablon, cu valorile luate dintr-un tablou.file_put_contents: Scrie un text într-un fișier. Creează fișierul dacă nu există.