Autor Zpráva
user243
Profil
Hoj,
reviduji si scripty a došel jsem k zápis do souboru, kde jsem používal funkci fwrite(). Všude čtu, že je bezpečnější jednodušší a prostě lepší používat file_put_contents(). Také mě zajímala rychlost, někde psali to a jinde zase ono. Tak jsem si sám vytvořil textový soubor velký skoro 10MB, který jsem pak jako řetězec zapisoval do souboru pomocí obou funkcí. Čas zápisu byl o několik setin kratší u funkce fwrite(). Velikost souboru byla jen pro testovací účely, aby byl vidět rozdíl, normálně s tak velkým textovým souborem nepracuji.
Takže je to zanedbatelné, nebo jak Vy sami se k tomu stavíte?
Díky.
Tori
Profil
Záleží na tom, jak velká data zapisujete - s fwrite se dá šetřit paměť, kdežto u file_put_contents musí být v paměti celý obsah souboru. Anebo pokud data k zapsání odněkud čtete po částech (třeba z DB), připadá mi vhodnější je rovnou po těch částech zapisovat.
File_put_contents pracuje atomicky, fwrite při přidávání dat na konec souboru taky, v ostatních modech nevím.
user243
Profil
Většinou jsou to soubory o velikosti pár stovek KB, kde stejně zapisuji na začátek souboru, takže zapisuji vlastně nový řetězec + původní obsah. Tam asi žádná úspora paměti nehrozí.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: