Jump to content
Sign in to follow this  
gorefest

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

Recommended Posts

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?

Share this post


Link to post

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.

Edited by BlueEAGLE

Share this post


Link to post

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.

Share this post


Link to post

@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=';

Share this post


Link to post

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 );

Edited by Jonhoo

Share this post


Link to post

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 );

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...