Domanda

Ho un modulo che ha un elenco a discesa dei titoli dei brani.Voglio poter fare clic sul titolo di una canzone e caricare il testo sulla stessa pagina.I testi sono contenuti all'interno di file .txt in una cartella chiamata "Lyrics".

Esempio:

L'elenco a discesa contiene:Song1 Song2 Song3 ecc.

Quando l'utente fa clic sulla canzone, il contenuto del file .txt corrispondente viene visualizzato nella stessa pagina.Qualche idea?

È stato utile?

Soluzione

<?php
    $song = intval( $_GET[ 'song_id' ] );
    $songs = array( 0 => NULL, 1 => 'Song1', 2 => 'Song2', 3 => 'Song3' );
    echo file_get_contents( $songs[ $song ] . '.txt' );
?>

Buona fortuna!

Altri suggerimenti

Sarebbe più semplice usare JQuery:

<a href="somefile.txt" class="link">Song 1</a>
<pre id="lyrics">
</pre>

<script>
$(function(){
   $('.link').click(function(){
     $.get(this.href,null,function(lyrics){
         $('#lyrics').html(lyrics);
         return false;
     });
   });
});
</script>

Se hai un elenco di brani e usi una semplice convenzione di denominazione, usala come lista bianca per verificare che il valore GET sia consentito prima ancora di pensare di usarlo

file_get_contents

    $song = $_GET['song'] ;
    $file = '/Lyrics/' . $song . '.txt' ; 
    $songs = array( 'help', 'she-loves-you', 'yellow-submarine' );

   // as a double check see if the file exists too

   if( in_array( $song, $songs ) && file_exists( $file ) ) {
       echo file_get_contents( $file );
    }

Se sei intelligente puoi anche riutilizzare lo stesso array $songs per creare il tuo elenco a discesa.

<valore opzione=giallo-sottomarino>Sottomarino Giallo</opzione>

E poi se lo tieni in un database, beh potresti decidere che il "sottomarino giallo" "lumaca" sarebbe una chiave privata ideale, ma non farmi iniziare con quello ...

Questa è una soluzione rapida, ma altamente insicura, usala solo come esempio, come potrebbe essere fatto, ma non dovrebbe:

<?

// qui il codice della tua pagina // questo è il corpo in cui vuoi inserire i testi delle canzoni

file_get_contents($_GET['songName'].".txt")

// else ..

?>

in meniu:

<a href="songs.php?songName=song1">song1</a>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top