如何使用数据库生成多个文件夹内容页面?

时间:2011-11-19 12:08:18

标签: php web sql

场景:我正在尝试构建移动娱乐门户。它将使用户能够下载Music&电影到他们的手机......

问题Exp:假设我上传了100个歌曲文件夹,每个文件夹用于一个专辑。我想要一种方法来生成一个包含所有文件夹名称(专辑名称)的页面。如果用户点击页面,他们应该被带到一个页面,在那里他们获得相册中所有歌曲的列表。点击任何歌曲名称即可让他们下载。无论如何都可以完成,或者我必须为每张专辑手动设计3个页面中的每一个。如果我这样做,它耗费时间并且很难改变像页脚,标题......

1 个答案:

答案 0 :(得分:1)

首先,这是一个加权问题。但我会尝试回答你的一些问题,以帮助你开始。

您可以使用PHP中的scandir()扫描目录。

$path = '/path/to/music';
$dir  = scandir($path);
if (is_array($dir)) {
    foreach ($dir as $directory) {
        if (is_dir("{$path}/{$directory}")) {
            // validate that it's among the directories you want
        }
    }
}

所以,既然你知道如何做到这一点,也许不是试图为每个专辑文件夹创建一个单独的页面,而是可以使用一个脚本并基于GET vars,显示相应的内容。 e.g。

domain.com/index.php?album=Album+Name

现在让我们看看它如何与上面的例子一起使用:

// assume your album folder names use underscores
$album = (isset($_GET['album'])) 
    ? str_replace('+', '_', $_GET['album'])
    : null;
$path  = '/path/to/music';
$dir   = scandir($path);
if (is_array($dir)) {
    foreach ($dir as $directory) {
        if (is_dir("{$path}/{$directory}") && $album == $directory) {
            // now, scan for files
        }
    }
}

然后获取文件,当你循环遍历目录时,而不是检查目录,检查它是不是目录,那将是给你你的文件。 (例如if (!is_dir(...