سؤال

ولدي نموذج به قطرة قائمة عناوين الأغاني أسفل. أريد أن أكون قادرة على الضغط على واحدة من عناوين الأغاني وكلمات تحميلها على نفس الصفحة. وترد كلمات في ملفات .txt في مجلد يسمى "الأغاني".

مثال:

والقائمة المنسدلة تحتوي على: Song1 Song2 Song3 وما إلى ذلك.

وعندما ينقر المستخدم على الأغنية، يتم عرض محتويات ملف txt المقابلة على نفس الصفحة. أي أفكار؟

هل كانت مفيدة؟

المحلول

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

وحظا سعيدا!

نصائح أخرى

وسيكون من الأسهل استخدام مسج:

<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>

إذا كان لديك قائمة من الأغاني، وكنت تستخدم اصطلاح التسمية بسيطة ثم استخدام ذلك كما هو مسموح به في القائمة البيضاء للتحقق من قيمة 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 );
    }

إذا كنت ذكيا يمكنك أيضا ثم إعادة استخدام نفس $ الأغاني مجموعة لإنشاء الخاص بك القائمة المنسدلة.

<قيمة الخيار = الصفراء للغواصات> الغواصة الصفراء

وبعد ذلك إذا كنت تضع ذلك في قاعدة بيانات، وأيضا قد تقرر أن 'سبيكة' 'الصفراء للغواصات "من شأنه أن يجعل المفتاح الخاص مثاليا، ولكن لا يحصل لي بدأت على ذلك ...

وهذا هو حل سريع، ولكن غير آمنة للغاية، واستخدامها فقط كمثال، كيف يمكن القيام به، ولكن ليس بما يلي:

<?

و// شفرة صفحة هنا // هذا هو الجسم حيث تريد وضع كلمات أغنية

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

و// آخر ..

?>

وفي meniu:

<a href="songs.php?songName=song1">song1</a>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top