Ce face tmpfile
tmpfile creează un fișier cu nume unic în directorul temporar și îl deschide în modul w+. Nu returnează o cale, ci direct resursa, pe care o folosești cu fwrite, fread și celelalte funcții de fișier.
Fișierul este șters automat la fclose sau când scriptul se termină. Este potrivit pentru date intermediare, de exemplu un CSV generat înainte de a fi trimis.
Ce returnează
O resursă de fișier sau false la eroare.
Exemple
Exemplul 1: Scriere și citire
După scriere, cursorul este la finalul fișierului. rewind îl readuce la început, ca să putem citi.
<?php
$f = tmpfile();
fwrite($f, "Comanda 1024: 2 bucăți\n");
fwrite($f, "Comanda 1025: 1 bucată\n");
rewind($f);
echo stream_get_contents($f);
fclose($f);
Rezultat
Comanda 1024: 2 bucăți
Comanda 1025: 1 bucată
Exemplul 2: Fișierul dispare la închidere
<?php
$f = tmpfile();
$cale = stream_get_meta_data($f)["uri"];
var_dump(file_exists($cale));
fclose($f);
var_dump(file_exists($cale));
Rezultat
bool(true)
bool(false)
Greșeli frecvente
- Citești imediat după scriere și primești text gol. Cursorul este la final: apelează
rewind($f)înainte de citire.
Comenzi înrudite
tempnam: Creează un fișier gol cu nume unic și îi returnează calea.fopen / fclose: Deschide un fișier pentru citire sau scriere și returnează o resursă; fclose îl închide.fwrite / fputs: Scrie un text într-un fișier deschis cu fopen. fputs este același lucru, cu alt nume.sys_get_temp_dir: Returnează calea directorului pentru fișiere temporare al sistemului (de obicei /tmp).