[PHP]Maximale grote inhoud variabele

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik vroeg me af wat de maximale grote aan tekst is dat je in een variabele kan "stoppen"

Dus als ik dit doe $bericht = "hoe veel kan er in"

Hoeveel byte kan er dan in die variabele. Of is het ongelimiteerd.

Ik zat te kijken op google maar daar kon ik alleen maar vinden dan er een stukje van het geheugen gereserveerd wordt. meer niet. En op GoT search kon ik ook niet iets duidelijks vinden. :'(

Ik moet dit weten omdat ik data vanuit een textbestand wil lezen.

Ik kan dan wel gewoon echo implode("", file("text.txt"));

Maar in text.txt staan een aantal dingen die gereplaced moeten worden dus doe ik dit

$bericht = implode("", file("text.txt"));
$bericht = str_replace(":D", "[img]\"smile.gif\"[/img]", $bericht);
echo $bericht.

Maar hoeveel regels uit het tekst bestand kan ik in de variabele $bericht kwijt?

Acties:
  • 0 Henk 'm!

  • PolarBear
  • Registratie: Februari 2001
  • Niet online
Heb je al eens gezocht? Dit zijn standaard RTFM vragen ...

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ja ik kan alleen vinden dat hij wat getest heeft. en dat men denkt dat je 8Mb kan hebben maar ik moet het net als hij zeker weten. Echter ik weet niet hoe groot het txt bestand wordt.

Het kan wel eens een MB worden. als txt extentie maar hoeveel MB is dat dan in in een php variabelen

Topic

[ Voor 53% gewijzigd door Verwijderd op 28-04-2005 12:41 ]


Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 16:36
Volgens mij kun je tot je geheugen vol is doorpompen (of tot er aan de bel wordt getrokken voor een geheugenlimiet). Mijn record met 1 PHP script dat 130MB plaintext data moest valideren ligt op 829MB geheugen :X

Regeren is vooruitschuiven


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bedankt allemaal.

Ik heb het gevonden.

It is no problem for a string to become very large. There is no practical bound to the size of strings imposed by PHP, so there is no reason at all to worry about long strings.

http://docs.php.net/en/language.types.html#language.types

Ik wist alleen niet de goede zoektherm maar heb die nu gevonden.

Sorry voor mijn domme vraag

Acties:
  • 0 Henk 'm!

Verwijderd

Het hele tekstbestand naar een variabele pompen is niet echt efficient.

Een betere manier is om regel voor regel te lezen (tot aan carriage return / linefeed), de aanpassing maken en wegschreven naar een secundair bestand.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dus je bedoelt dat alle gereplaced "tekst" in een ander text bestand geschreven wordt?

Maar dat in plaats van in een keer alles uit te lezen dan regel voor regel en dan in een ander txt bestand te zetten

[ Voor 36% gewijzigd door Verwijderd op 28-04-2005 13:36 ]


Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 16:36
Als je het alleen wil weergeven hoef je het niet eens in een tekstbestand te zetten. Gewoon line-by-line uitlezen, replacen en weergeven.
zoiets:
PHP:
1
2
3
foreach(file("text.txt") as $line) {
    echo str_replace(":D", "[img]\"smile.gif\"[/img]", $line);
}


--edit--
Hmm zo lees je natuurlijk nog het hele bestand in een keer in je geheugen. Zuiniger qua geheugengebruik is ie zo:
PHP:
1
2
3
4
5
$handle = fopen('file.txt',"r");
while ($line = fgets($handle, 4096)) { 
    echo str_replace(":D", "[img]\"smile.gif\"[/img]", $line);
}
fclose($handle);

[ Voor 42% gewijzigd door T-MOB op 28-04-2005 14:00 ]

Regeren is vooruitschuiven

Pagina: 1