gorefest 0 Report post Posted October 8, 2010 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? Quote Share this post Link to post
BlueEAGLE 679 Report post Posted October 8, 2010 http://php.net/file eller http://php.net/file_get_contents eller hvis filen er stor så en kombinasjon av http://php.net/fopen og http://php.net/fgets Quote Share this post Link to post
Jonhoo 4 Report post Posted October 9, 2010 $m = 0; foreach ( split ( "\n", file_get_contents ( 'movies.txt' ) ) as $movie ) { if ( ++$m == 5 ) break; echo $movie; } Quote Share this post Link to post
gorefest 0 Report post Posted October 10, 2010 Takk! $m = 0; foreach ( split ( "\n", file_get_contents ( 'movies.txt' ) ) as $movie ) { if ( ++$m == 5 ) break; echo $movie; } Quote Share this post Link to post
BlueEAGLE 679 Report post Posted October 10, 2010 (edited) 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 October 10, 2010 by BlueEAGLE Quote Share this post Link to post
gorefest 0 Report post Posted October 10, 2010 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. Quote Share this post Link to post
Jonhoo 4 Report post Posted October 11, 2010 @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='; Quote Share this post Link to post
Jonhoo 4 Report post Posted October 11, 2010 (edited) 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 October 11, 2010 by Jonhoo Quote Share this post Link to post
gorefest 0 Report post Posted October 12, 2010 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 ); Quote Share this post Link to post