webForumDet fria alternativet

Lägga till saker först i en fil

PHP

1 svar · 369 visningar · startad av Kim

Medlem sedan jan. 20007 697 inlägg
Frågan#1

Hur gör man för att öppna en fil och sen kunna skriva in saker först i filen?
Jag använder fwrite() när jag ska skriva saker men den lägger alltid den nya texten sist.
Hur gör man? *Desperat*

------------------
Kim Halderot
cim@linux.nu

Medlem sedan dec. 19992 555 inlägg
#2

Tror inte du kan göra det rakt av. Du kan i.o.f.s. ställa filpekaren till början av filen och skriva på, men då skriver du över det som tidigare låg där i stället för att infoga.

Algoritmen för att åstadkomma vad du vill kan se ut så här:

Om filen är liten: Läs in hela filen i minnet, nollställ filen (radera innehållet). Skriv in det som skall infogas och skriv därefter in resten av filen.

Om filen är stor: Skapa en temporär fil där du börjar med att skriva in det som skall infogas. Sedan öppnar du den orginalfilen, läser rad för rad (eller tecken för tecken) och skriver in detta i den temporära filen. Sist raderar du den ursprungliga filen och döper slutligen om den temporära filen så att den ersätter orginalfilen.

------------------
Robban < robban@lipogram.com >

260 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)