tmpfile în PHP

Creează un fișier temporar deschis pentru citire și scriere, care se șterge singur la închidere.

Sintaxă
tmpfile()

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).