Файлы в папке, отображаемой с помощью PHP, автоматически вводятся в список воспроизведения php/html

У меня есть то, что кажется простой проблемой. Я хотел бы, чтобы мои плейлисты автоматически заполнялись файлами в папке. Так как mp3s добавляются в папку, файлы создаются в списке воспроизведения. Я могу отобразить все файлы в папке и вывести имена файлов в отдельной строке, используя:

<?php
$dir = "app/vd/$val/";
$files = scandir($dir);
foreach ($files as &$file) {
    if ($file!='.' && $file!='..' )
    {
        echo $file.'<br>';
    }
}
?>

И я вручную добавляю файлы в список воспроизведения, используя:

<ul id="playlist" style="margin-left:auto; margin-right:auto;">
<li mp3="app/vd/<?php echo $val ?>/whatever.mp3" ogg="app/vd/<?php echo $val ?>/whatever.ogg" artist="<?php echo $val ?>" title="<?php echo $val1 ?>" ></li>

<li mp3="app/vd/<?php echo $val ?>/whatever2.mp3" ogg="app/vd/<?php echo $val ?>/whatever2.ogg" artist="<?php echo $val ?>" title="<?php echo $val1 ?>" ></li> 

Любая помощь будет принята с благодарностью.

1 ответ

Решение

Просто поместите его между тегами ul...

<ul id="playlist" style="margin-left:auto; margin-right:auto;">
    <?php
    $dir = "app/vd/$val/";
    $files = scandir( $dir );
    foreach ( $files as $file )
        if ( $file != '.' && $file != '..' )
            echo '<li mp3="app/vd/', $val, '/', $file,'" ogg="app/vd/', $val, '/', $file, '" artist="', $val, '" title="', $val1, '" ></li>';
    ?>
</ul>

или чтобы это выглядело лучше

<?php $files = scandir( "app/vd/$val/" ); ?>
<ul id="playlist" style="margin-left:auto; margin-right:auto;">  
    <?php foreach ( $files as $file )
        if ( $file != '.' && $file != '..' )
            echo "<li mp3=\"app/vd/$val/$file\" ogg=\"app/vd/$val/$file\" artist=\"$val\" title=\"$val1\" ></li>"; ?>
</ul>

PS: glob - это аккуратная маленькая функция http://de3.php.net/manual/en/function.glob.php PPS: итераторы в каталогах тоже аккуратны

Другие вопросы по тегам