Det vil lave et array kaldet saet, som indeholder en række arrays (startende fra nul), som hver indeholdende tre linjer. Altså: $saet[1][2] = tredje linje i andet sæt.
Det kan også laves uden at kende antallet af linjer forgående, men så må jeg lige kigge på det i morgen. Jeg er for træt nu.
Ovenstående er ikke særligt smart. Først og fremmest giver det nogle helt forkerte linje, og for det andet viser det dem, i stedet for at gøre det muligt at sætte dem ind i en database.
Dette her skulle løse dine problemer. Det laver to arrays, $enkeltSaet og $dobbeltSaet. $enkeltSaet indeholder alle de valgte linjer, en efter en. $dobbeltSaet indeholder et antal arrays, hver med et sæt af linjer i.
Tilsidst dumpes $enkeltSaet og $dobbeltSaet så du kan følge med i hvad der sker:
<?php $fil = file("fil.txt"); $antalLinjer = 3; //Antal linjer per sæt. $mellemrumMellemLinjer = 4; //Mellemrum mellem sidste i sæt, og første i næste sæt.
Kan der ikke være problemer med størrelsen af filen, denne her er på 5 MB
Synes godt om
Slettet bruger
24. august 2009 - 10:38#12
Showsource, du ville altså høre en query mod databasen for HVER linje? Det ville da være dybt ineffektivt, og slet ikke spor smart. Det er da meget bedre at gemme linjerne i en eller anden datastruktur, og derefter proppe den ind i en blop, eller serialize den, og lægge den i en string. Så går det også meget hurtigere, især med en 5 MB fil.
Hvor stor en fil den kan tage, afhænger af serverens hukkommelse, hvor lang tid det må tage, og hvor stor et felt i databasen må være (ellers kan den jo splittes over i små stykker og de kan proppes ind individuelt). Generelt vil en 5 MB fil ikke give de store problemer.
function countLines($filepath) { /*** open the file for reading ***/ $handle = fopen( $filepath, "r" ); /*** set a counter ***/ $count = 0; /*** loop over the file ***/ while( fgets($handle) ) { /*** increment the counter ***/ $count++; } /*** close the file ***/ fclose($handle); /*** show the total ***/ return $count; }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.