webForumDet fria alternativet

Arbeta rad för rad

PHPur PHP

2 svar · 187 visningar · startad av Matti

MattiMedlem sedan dec. 19996 592 inlägg
#1

"Om det är en stor fil är det dock bättre att arbeta radvis för att spara minne."
http://cgi.webforum.nu/wf/Forum12/HTML/000006.html

Hur gör jag om jag vill läsa in en stoooor fil och kolla om den innehåller $namn?

------------------
webmaster resources

nicclasMedlem sedan feb. 20001 050 inlägg
#2

Ja, med stor fil menar antaligen Robban en stor fil som har många (men ganska korta) rader. Då kan man gör ungefär såhär:

$fpread = fopen("stoor.txt", 'r')
$hittat="Nej";
while(!feof($fpread)){
$rad=fgets($fpread,8192);
if(eregi($namn,$rad)){
$hittad="Ja";
break;
}
}
fclose($fpread);
echo "Hittat: $hittad\n";

Tyvärr blir det ju inte så effektivt om skall göra flera "sökningar" efter varanda. I sådana fall är det nog bäst att läsa in hela filen (med tex read) i alla fall... Likadant om filen bara har ett fåtal långa rader...

Alternativt läs in filen i en databas ;)

/nicclas - www.nyhetsrubriker.com

MattiMedlem sedan dec. 19996 592 inlägg
#3

Tack! Ska testa lite imorgon.. nu ska jag sova. :)

------------------
webmaster resources

126 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)