webForumDet fria alternativet

ta ut de första 5 raderna ur en text fil?!

PHP

3 svar · 212 visningar · startad av @ndreas

Medlem sedan maj 200148 inlägg
Frågan#1

Och han letade, och han letade....men hittade ingenting.
Jag skulle vilja ta ut de första 5 raderna ur en text fil.
Hur ska man kunna göra detta?

------------------
Om vi vore ensamma i universum så är det ett väldigt slöseri med plats.

Medlem sedan mars 20007 896 inlägg
#2

Sätt 1:

<?php
$fil = file("filen.txt");

for($i = 0; $i < 5; $i++) {
&nbsp; &nbsp; $fem_rader[$i] = $fil[$i];
}
?>

Sätt 2:

<?php
$filPekare = fopen("filen.txt", 'r');

for($i = 0; $i < 5; $i++) {
&nbsp; &nbsp; $fem_rader[$i] = fread($filPekare, 1024);
}

fclose($filPekare);
?>

Vilket sätt som är snabbast har jag ingen aning om, välj det som du tycker ser bäst ut :)

I andra exemplet kan du ändra 1024 till ett tal som passar dig bättre. Talet bestämmer hur många tecken som ska läsas på raden.

------------------
SPiN, bjorne.w@telia.com

-- Tekniska framsteg är som en yxa i händerna på en kriminell galning / Albert Einstein --

Medlem sedan maj 200148 inlägg
#3

Tackar, men hur ska jag skriva ut det, för när jag försöker är det helt dött, behöver det står något konstigt i textfilen eller så...kanske måste vara nån sorts avslutning på varje rad.
Eller är det bara utskriften som saknas, typ echo $fem_rader; fast det har jag testat och det hjälpte inte riktigt...

------------------
Om vi vore ensamma i universum så är det ett väldigt slöseri med plats.

Medlem sedan mars 20007 896 inlägg
#4

Nope, det hjälpte inte eftersom att allt hamnar i en array :)

<?php
while($current = array_shift($fem_rader)) {
    echo $current;
}

Eller:

for($i = 0; $i < count($fem_rader); $i++) {
    echo $fem_rader[$i];
}

Som du märker finns det många sätt att göra saker på i PHP, det är bra med flexibilitet :)

Jag skulle personligen använda sätt 1 här, tycker det är renare och snyggare.

Red.} Allt som allt skulle jag gjort så här:

<?php
$fil = file("filen.txt");

for($i = 0; $i < 5; $i++) {
&nbsp; &nbsp; array_push($fem_rader, $fil[$i]);
}

while($current = array_shift($fem_rader)) {
&nbsp; &nbsp; echo $current;
}
?>

Snygg och ren kod, alltid välkomment. Eller hur, Zacay? ;)

Läs mer om funktionen array_push(), och array_shift() om du inte använt dem tidigare och inte vet hur de fungerar. :)

------------------
SPiN, bjorne.w@telia.com

-- Tekniska framsteg är som en yxa i händerna på en kriminell galning / Albert Einstein --

[Redigerat av SPiN den 10 nov 2001]

261 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)