webForumDet fria alternativet

Hur läser man in en del av en fil?

PHP

9 svar · 449 visningar · startad av bRaVo

Medlem sedan mars 200027 inlägg
Frågan#1

Jag har en gästbok som jag skrivit i php.. men nu skulle jag vilja att det senaste inlägget,dvs det inlägget högst upp i datafilen

jag vet hur man läser man från början av en fil, men nu vill jag att den ska sluta när den hittar <!-- för andra gången (varje inlägg börjar med <!-- datum --> )

hjälp är jag väldigt tacksam om jag får

/Erik Jansson (www.saft.nu)

Medlem sedan dec. 19992 555 inlägg
#2

Enklast blir det ju om du lagrar varje inlägg på en egen rad i datafilen. Då kan du använda fgets för att bara läsa in den översta raden och inga fler.

Annars får du ju läsa in rad för rad, eller tecken för tecken, och leta (med reguljära uttryck) efter förekomsten av "<!--", men det är ju både krångligare och mer resurskrävande.

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

Medlem sedan apr. 20003 971 inlägg
#3

fgets kan inte läsa in en rad om man inte vet hur lång raden är som max... störande...

------------------
/mvh Swey

- Wadde Hadde Dudde Da

Medlem sedan dec. 19996 721 inlägg
#4

Hämta med fgetc tills att du stöter på en newline, eller hämta en lagom lång snutt och splitta fram första raden, eller matcha fram den.

Medlem sedan jan. 20007 697 inlägg
#5

Problemet med det är ju att ett inlägg från en gästbok, som det är i det här fallet, lätt kan innehålla radbrytningar. Då blir det helt galet om man letar efter radbrytningar.

------------------
Kim Halderot - styled by a barber

kim@finansvalpen.nu

Medlem sedan dec. 19992 555 inlägg
#6

fgets kan inte läsa in en rad om man inte vet hur lång raden är som max ...

Man kan ju hugga i ordentligt när det gäller length så blir det ju i praktiken läsning rad för rad. :)

Men jag håller med dig om att det är bökigt. Attributet length borde ha varit frivilligt (och om inte angivet så borde fgets läsa tills radbrytning eller EOF påträffas).

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

[Redigerat av Robban den 29 maj 2000]

Medlem sedan dec. 19992 555 inlägg
#7

Problemet med det är ju att ett inlägg från en gästbok, som det är i det här fallet, lätt kan innehålla radbrytningar.

När det gäller datafilen får man ju se till att ersätta alla radmatningar i så fall (t.ex. med <br> eftersom det troligen är det man vill ha i slutändan ändå). Inget större problem egentligen?

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

Medlem sedan jan. 20007 697 inlägg
#8

Nej, det är ju sant... :)

------------------
Kim Halderot - styled by a barber

kim@finansvalpen.nu

Medlem sedan apr. 20003 971 inlägg
#9

Jag provade att hugga i ordentligt. Riktigt ordentligt. Då fick jag ett felmeddelande. "Out of memory". :)

Den allokerar tyvärr så många bytes som man skickar. Jag provade att köra med fgetc en gång och det gick inte alls. Det tog evighet med tid.

Numera tycker jag att PHP inte är så bra - på bland annat filhantering -längre... :(

------------------
/mvh Swey

- Wadde Hadde Dudde Da

Medlem sedan dec. 19992 555 inlägg
#10

Den allokerar tyvärr så många bytes som man skickar.

Ok, det visste jag inte. Jag har väl inte huggit i ordentligt nog. :)

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

282 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
136 ms — deklarationer (db)
0 ms — hämta statistik (cache)
142 ms — hämta tråd, inlägg och bilagor (db)
136 ms — ändringar (db)