gorefest Skrevet 8. oktober 2010 Del Skrevet 8. oktober 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? Lenke til kommentar
BlueEAGLE Skrevet 8. oktober 2010 Del Skrevet 8. oktober 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 Lenke til kommentar
Jonhoo Skrevet 9. oktober 2010 Del Skrevet 9. oktober 2010 $m = 0; foreach ( split ( "\n", file_get_contents ( 'movies.txt' ) ) as $movie ) { if ( ++$m == 5 ) break; echo $movie; } Lenke til kommentar
gorefest Skrevet 10. oktober 2010 Forfatter Del Skrevet 10. oktober 2010 Takk! $m = 0; foreach ( split ( "\n", file_get_contents ( 'movies.txt' ) ) as $movie ) { if ( ++$m == 5 ) break; echo $movie; } Lenke til kommentar
BlueEAGLE Skrevet 10. oktober 2010 Del Skrevet 10. oktober 2010 (endret) 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 10. oktober 2010 av BlueEAGLE Lenke til kommentar
gorefest Skrevet 10. oktober 2010 Forfatter Del Skrevet 10. oktober 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. Lenke til kommentar
Jonhoo Skrevet 11. oktober 2010 Del Skrevet 11. oktober 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='; Lenke til kommentar
Jonhoo Skrevet 11. oktober 2010 Del Skrevet 11. oktober 2010 (endret) 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 11. oktober 2010 av Jonhoo Lenke til kommentar
gorefest Skrevet 12. oktober 2010 Forfatter Del Skrevet 12. oktober 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 ); Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå