Gå til innhold

Enkel php skript for å inkludere de 5 første linjer av en txt fil?


Anbefalte innlegg

Jeg lurer på hvordan jeg inkludere de fem første linjene av en .txt fil ved hjelp av php skript (eller html) sånn at de vises på en webside.

 

 

.txt fila ser sånn ut:

 

Troy (2004)

The Disappearance of Alice Creed (2009)

The Beacon (2009)

Afterwards (2008)

City Of God (2002)

Extraordinary Measures (2010)

osv...

 

noen som har en enkel løsning?

Lenke til kommentar
Videoannonse
Annonse

Vær oppmerksom på at file_get_contents() leser hele filen og hvis du kun er interessert i de fem første linjene så vil det medføre unødvendig tid brukt på å lese data du ikke vil bruke.

 

Legg også merke til at file() henter inn filen som en matrise hvor hver linje er en oppføring.

 

Jeg vil anbefare at du tar en titt på http://php.net/fopen og http://php.net/fgets for å få en bedre løsning.

Endret av BlueEAGLE
Lenke til kommentar

jeg syntes fgets og fopen så litt komplisert ut (jeg kan nesten ingen ting om skipting, spesielt lite om php)

 

Jeg fikk en ide om og lage en hyperlink som søker etter filmen på førte linje av tekstfila i imdbs database, så jeg prøvde meg litt frem, men får det ikke helt til.

Det er tydelig at jeg gjør noe galt, men jeg klarer ikke helt og finne feilen.

 

 

<?php

$m = 0;
$imdb = "http://www.imdb.com/find?";
foreach ( split ( "\n", file_get_contents ( 'filmliste/DATO/filmer.F-HD.txt' ) ) as $movie ) {
   if ( ++$m == 2 ) break;
   echo <a href= "$imdb+$movie">$movie</a>;
}

?>

 

som dere sikert ser så er poenget at linken skal bli $imdb+$movie, eksempel http://www.imdb.com/find?Uno (2004)

 

 

Noe som hadde vært enda bedre er om det er mulig og lage et script som gjørat alle filmene nedover på listen blir en hyperlink til filmens imdb side, men det er sikkert vanskelig.

Lenke til kommentar

@BlueEAGLE: Jeg er klar over at det overhode ikke er den beste løsningen, men for et enkelt oppsett som dette, og trådstarters erfaring med PHP synes jeg det ga det beste eksempelet =)

 

@gorefest: Du må putte teksten du vil printe ut (etter echo) i " eller ':

echo "<a href=\"$imdb$movie\">$movie</a>";

eller

echo '<a href="' . $imdb . $movie '">' . $movie . '</a>';

Beste fremgangsmåte er nok å bruke printf:

printf ( '<a href="%s">%s</a>', $imdb . $movie, $movie );

 

Tror forøvrig du har feil URL til IMDB sitt søk.

Det du er ute etter er:

$imdb = 'http://www.imdb.com/find?s=tt&q=';

Lenke til kommentar

Og bare for kompletthet:

Løsning ved hjelp av file():

$movies = file ( 'filmliste/DATO/filmer.F-HD.txt' );
$imdb = 'http://www.imdb.com/find?s=tt&q=';
for ( $i = 0; $i < 5; $i++ ) {
   printf ( '<a href="%s">%s</a>', $imdb . $movies[$i], $movies[$i] );
}

 

Løsning ved hjelp av fopen():

$fh = @fopen ( 'filmliste/DATO/filmer.F-HD.txt', 'r' );
if ( !$fh ) {
   die ( "Kunne ikke åpne filmfilen" );
}

$imdb = 'http://www.imdb.com/find?s=tt&q=';
for ( $i = 0; $i < 5; $i++ ) {
   if ( !feof ( $fh ) ) {
       $movie = trim ( fgets ( $fh ) )
       printf ( '<a href="%s">%s</a>', $imdb . $movie, $movie );
   }
}
fclose ( $fh );

Endret av Jonhoo
Lenke til kommentar

Takk for hjelpen, det fungerte helt utmerket! :)

 

 

 

Og bare for kompletthet:

Løsning ved hjelp av file():

$movies = file ( 'filmliste/DATO/filmer.F-HD.txt' );
$imdb = 'http://www.imdb.com/find?s=tt&q=';
for ( $i = 0; $i < 5; $i++ ) {
   printf ( '<a href="%s">%s</a>', $imdb . $movies[$i], $movies[$i] );
}

 

Løsning ved hjelp av fopen():

$fh = @fopen ( 'filmliste/DATO/filmer.F-HD.txt', 'r' );
if ( !$fh ) {
   die ( "Kunne ikke åpne filmfilen" );
}

$imdb = 'http://www.imdb.com/find?s=tt&q=';
for ( $i = 0; $i < 5; $i++ ) {
   if ( !feof ( $fh ) ) {
       $movie = trim ( fgets ( $fh ) )
       printf ( '<a href="%s">%s</a>', $imdb . $movie, $movie );
   }
}
fclose ( $fh );

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...