0

我有一个表格,其中包含歌曲标题的下拉列表。我希望能够单击其中一首歌曲标题并将歌词加载到同一页面上。歌词包含在名为“Lyrics”的文件夹中的 .txt 文件中。

例子:

下拉列表包含:Song1 Song2 Song3 等。

当用户点击歌曲时,相应的 .txt 文件的内容会显示在同一页面上。有任何想法吗?

4

4 回答 4

1

使用 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>
于 2009-12-01T09:53:09.417 回答
0
<?php
    $song = intval( $_GET[ 'song_id' ] );
    $songs = array( 0 => NULL, 1 => 'Song1', 2 => 'Song2', 3 => 'Song3' );
    echo file_get_contents( $songs[ $song ] . '.txt' );
?>

祝你好运!

于 2009-12-01T09:51:57.727 回答
0

如果您有一个歌曲列表,并且您使用简单的命名约定,那么在您考虑使用之前将其用作白名单来检查 GET 值是否允许

文件获取内容

    $song = $_GET['song'] ;
    $file = '/歌词/' . $歌曲。'。文本文件' ;
    $songs = array('help', 'she-loves-you', 'yellow-submarine' );

   // 作为双重检查,看看文件是否也存在

   if(in_array($song, $songs) && file_exists($file)) {
       回声文件获取内容($文件);
    }

如果你很聪明,你也可以重复使用相同的 $songs 数组来创建你的下拉列表。

<option value=yellow-submarine> Yellow Submarine</option>

然后,如果您将其保存在数据库中,那么您可能会认为“蛞蝓”“黄色潜艇”将成为理想的私钥,但不要让我开始...

于 2009-12-01T11:00:11.953 回答
-1

这是一个快速的解决方案,但非常不安全,仅将其用作示例,如何完成,但不应该:

<?

// 这里是你的页面代码 // 这是你想放歌词的正文

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

// 别的..

?>

在menu:

<a href="songs.php?songName=song1">song1</a>
于 2009-12-01T09:50:44.790 回答