tmpfile

tmpfile()

Vytvoří ve složce pro dočasné soubory nový soubor s jedinečným názvem a otevře ho pro čtení i zápis. Po fclose() nebo na konci skriptu se soubor smaže. Při chybě vrátí false.

Příklady

$f = tmpfile();
fwrite($f, "dočasná data");
// před čtením vrátit ukazatel na začátek
rewind($f);
echo fread($f, 100); // dočasná data
// cesta k souboru, třeba pro funkci, která chce název souboru
$cesta = stream_get_meta_data($f)["uri"];
var_dump(file_exists($cesta)); // bool(true)
fclose($f);
// po zavření je soubor pryč
var_dump(file_exists($cesta)); // bool(false)

Na co si dát pozor

  • Soubor se smaže při fclose() i na konci skriptu. Když ho potřebujete zachovat, použijte vlastní soubor a smažte ho sami.
  • Po zápisu je ukazatel na konci. Před čtením zavolejte rewind().
  • Na sdíleném hostingu může být složka pro dočasné soubory malá nebo omezená přes open_basedir. Velké soubory pak ukládejte do vlastní složky.
  • Pro menší data je rychlejší proud v paměti php://memory nebo php://temp (ten při překročení 2 MB přejde na disk).

Příbuzné funkce:
fopen()
fwrite()
fclose()
tempnam()