我将此代码设置为在目录中显示文件(如果它们是歌曲)。它们被放入一个不按任何顺序组织的列表中。我想用他们的文件名来组织这些歌曲。如果我查看我的FileZilla,他们的文件按文件的名称组织就好了。
示例:
歌曲不会保存在任何数据库中。我已经尝试将歌曲放入数组并使用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);
}
?>
答案 0 :(得分: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;
或同等的
这是未经测试的,所以可能需要一些摆弄才能正常工作。