代码之家  ›  专栏  ›  技术社区  ›  user

php-下拉列表以显示.txt内容

  •  0
  • user  · 技术社区  · 15 年前

    我有一个包含歌曲标题下拉列表的表单。我想能够点击其中一个歌曲标题和歌词加载在同一页。歌词包含在名为“歌词”的文件夹中的.txt文件中。

    例子:

    下拉列表包含: 宋一 宋二 宋三 等。

    当用户单击歌曲时,相应的.txt文件的内容将显示在同一页上。有什么想法吗?

    4 回复  |  直到 15 年前
        1
  •  0
  •   Jacob Relkin    15 年前
    <?php
        $song = intval( $_GET[ 'song_id' ] );
        $songs = array( 0 => NULL, 1 => 'Song1', 2 => 'Song2', 3 => 'Song3' );
        echo file_get_contents( $songs[ $song ] . '.txt' );
    ?>
    

    祝你好运!

        2
  •  1
  •   jerjer    15 年前

    使用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>
    
        3
  •  0
  •   Cups    15 年前

    如果您有一个歌曲列表,并且使用了一个简单的命名约定,那么在您考虑使用之前,请使用它作为白名单来检查get值是否被允许。

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

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

    <选项值=黄色潜水艇>黄色潜水艇</选项>

    如果你把这个放在数据库里,你可能会认为“鼻涕虫”黄色潜水艇是一个理想的私人钥匙,但别让我开始…

        4
  •  -1
  •   lfx    15 年前

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

    <?
    

    //此处为您的页面代码 //这是你想放歌词的地方

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

    ?>
    

    梅尼乌:

    <a href="songs.php?songName=song1">song1</a>