Avatar billede ostehamster Nybegynder
30. marts 2004 - 10:34 Der er 7 kommentarer og
1 løsning

Læse første linie i en fil

Hejsa

Jeg vil gerne kunne læse den første linie i en fil, det som sådan ikke så svært, man kan bare:
$filename = "filen.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
$contents =explode("\n",$contents);
print_r($contents);
fclose($handle);

Men, hvis nu filen er kampstor, så er det lidt trist at læse hele filen, bare for at finde en string på fem tegn.

Så kan man ikke læse i filen, indtil man måde et \n eller et \r, og på den måde stare lidt prosessorkraft?

mvh
Christoffer
Avatar billede muddi Praktikant
30. marts 2004 - 10:40 #1
Brug http://dk.php.net/fgets funktionen.
Avatar billede muddi Praktikant
30. marts 2004 - 10:42 #2
Fra dokumentationen:
"Returns a string of up to length - 1 bytes read from the file pointed to by handle. Reading ends when length - 1 bytes have been read, on a newline (which is included in the return value), or on EOF (whichever comes first). If no length is specified, the length defaults to 1k, or 1024 bytes."

Det er tilsyneladende lige præcis det du er ude efter. Nemlig at den skal stoppe læsningen fra filen når den støder på det første newline-tegn!
Avatar billede ostehamster Nybegynder
30. marts 2004 - 11:04 #3
Det smart, jeg lavet mig denne kode:
<?php
$handle = fopen("fil.php", "r");

#Prøver at læse fem linier, for at checke om der findes en titel
for($i=0;$i<5;$i++) {
    $buffer = fgets($handle, 4096);
    $titel = str_replace("#Titel:","",$buffer);
   
    if ($buffer <> $titel) {
        break;
    } else {
        $titel = "";
    }
}

fclose($handle);

echo $titel;
?>

Takker for hjælpen...
Avatar billede muddi Praktikant
30. marts 2004 - 11:13 #4
Det var så lidt :) Tak for point!
Avatar billede Slettet bruger
30. marts 2004 - 17:45 #5
hvad betyder <> i:  if ($buffer <> $titel)
Avatar billede ostehamster Nybegynder
30. marts 2004 - 19:40 #6
det tester bare på, om $buffer og $titel er forskellige fra hinanden
Avatar billede muddi Praktikant
31. marts 2004 - 10:29 #7
wices >> Det er det samme som at skrive != som betyder 'er ulig med'
Avatar billede Slettet bruger
31. marts 2004 - 11:51 #8
ok, tak
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester