Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP: file vs. fopen (tiedoston lukeminen)

Triton [24.06.2010 13:54:47]

#

Olen miettinyt, että minkälaisissa tilanteissa kannattaa käyttää php:n file-funktiota ja minkälaisissa taas fopen-funktiota, kun kysymyksessä on tiedoston lukeminen. File on periaatteessa helpompikäyttösempi, kun tiedostoa pystyy käsittelemään taulukkomuodossa, mutta sitten taas on se riski, että php:n memory_limit täyttyy, eikä skripti enää toimi oikein. Olennaisin kysymys onkin se, että kuinka suurella todennäköisyydellä memory_limit täyttyy tai kuinka monta tiedoston riviä vastaa memory_limitin suuruuttaa, joka itselläni ainakin on 8MB?

Antti Laaksonen [24.06.2010 14:42:22]

#

Jos tietoa voi olla paljon ja kaikkea tietoa ei tarvitse pitää samaan aikaan muistissa, fopen voi olla hyvä valinta.

Yksi tiedoston merkki vie tilaa yhden tavun. Joten jos joka rivillä on 100 merkkiä, noin 80000 riviä vie tilaa 8 Mt.

Voit tutkia PHP-skriptin muistinkäyttöä funktiolla memory_get_usage.

Metabolix [24.06.2010 14:48:26]

#

Antti Laaksonen kirjoitti:

Yksi tiedoston merkki vie tilaa yhden tavun. Joten jos joka rivillä on 100 merkkiä, noin 80000 riviä vie tilaa 8 Mt.

Toisaalta koska PHP on skriptikieli, taulukon rakenteen ylläpito vaatii myös muistia ja tyhjäkin teksti vie jonkin verran tilaa.

temu92 [24.06.2010 15:42:00]

#

Jos serveri sen sallii niin memory_limittiä kyllä voi muuttaakin ini_set():llä.

<?php
    ini_set('memory_limit', '20M');
?>

Kätevä esim. silloin kun on kyse kuvien muokkauksesta GD:llä ja muistia tarvitaan joskus aika paljonkin.

pake10 [24.06.2010 21:30:22]

#

temu92 kirjoitti:

Jos serveri sen sallii niin memory_limittiä kyllä voi muuttaakin ini_set():llä.

<?php
    ini_set('memory_limit', '20M');
?>

Kätevä esim. silloin kun on kyse kuvien muokkauksesta GD:llä ja muistia tarvitaan joskus aika paljonkin.

Useimmilla servereillä tämä on kyllä estetty.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta