1

如果它们是歌曲,我已将此代码设置为在目录中显示文件。他们被放入一个不按任何顺序组织的列表中。我想按文件名组织这些歌曲。如果我查看我的 FileZilla,他们的文件按文件名组织就好了。

例子:

  • 01 - 歌曲名称
  • 02 - 歌曲名称
  • 03 - 歌曲名称

歌曲未保存在任何数据库中。我尝试将歌曲放入一个数组并使用 sort() 但这只会一遍又一遍地输出单词“Array”。我可能做错了。

您可以在这里看到一个示例,它们是如何随机发布的:http ://mixtapemonkey.com/mixtape?m=637

<?php
    $mixtapeid = $_GET['m'];
    $tb_name="mixtapes";

    $data = mysql_query("SELECT * FROM $tb_name WHERE id='$mixtapeid'") or die(mysql_error());
    $info = mysql_fetch_array($data);

    if ($handle = opendir("mixtapes/zip/".$info['id'])) {
        while (false !== ($entry = readdir($handle))) {
            if ($entry != "mixtapes/zip/".$info['id'] && $entry != "mixtapes/zip/".$info['id']) {   
                $item = "mixtapes/zip/".$info['id']."/".$entry."/";

                    if ($newhandle = opendir("mixtapes/zip/".$info['id']."/".$entry)) {
                        while (false !== ($newentry = readdir($newhandle))) {
                            if ($newentry != "mixtapes/zip/".$info['id']."/".$entry && $newentry != "mixtapes/zip/".$info['id']."/".$entry) {

                               $ext = substr($newentry, strrpos($newentry, '.') + 1);
                               if ($ext == "mp3" || $ext == "m4a")
                               {
                                    echo    "<li><a href='$item$newentry'>".basename($newentry, '.mp3')."</a></li>";
                               }
                            }
                        }
                        closedir($newhandle);
                    }

            }
        }
        closedir($handle);
    }
?>
4

1 回答 1

1

您可能希望将歌曲添加到数组中,然后调用sort()( http://php.net/manual/en/function.sort.php ) 函数。

改变

if ($ext == "mp3" || $ext == "m4a")
{
    echo    "<li><a href='$item$newentry'>".basename($newentry, '.mp3')."</a></li>";
}

if ($ext == "mp3" || $ext == "m4a")
{
    $musicarray[] = basename($newentry, '.mp3');
}

然后稍后在您的代码中,您可以对这个 mucis 数组进行排序

sort($musicarray);

如果您收到有关未定义数组的错误,您可能需要添加

$musicarray = Array();

代码中较早的地方。

这只会创建数组而不显示它。要打印数组,在您的巨型循环之后,您需要从数组中回显出 evrey 键,例如

foreach ($musicarray as $item)
    echo $item;

或同等学历

这是未经测试的,因此可能需要一些摆弄才能正常工作。

于 2013-07-11T23:10:22.513 回答