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