目录和显示文件的文件夹每个文件夹中
我使用下面的代码来列出一个目录(称为测试)的所有文件夹和所有文件的PHP数组这些文件夹中:目录和显示文件的文件夹每个文件夹中
<?php
function listFolderFiles($dir){
$ffs = scandir($dir);
echo '<ol>';
foreach($ffs as $ff){
if($ff != '.' && $ff != '..'){
echo '<li class="title">'.$ff;
if(is_dir($dir.'/'.$ff)) listFolderFiles($dir.'/'.$ff);
echo '</li>';
}
}
echo '</ol>';
}
listFolderFiles('test');
?>
这工作正常,但是我希望能够链接到这些文件夹中的每个文件。任何人都可以告诉我我该怎么做?
例如我有一个名为“test”的子目录“test 1”,“test 2”和“test 3”。在每一个我有一些文件,我想成为用户可以点击显示该文件的链接。因此,当用户访问该网站,他们会看到这样的事情:
测试1: 链接1 链接2
测试2: 链接1个 链接2
测试3: 链接1 链接2
只需在您要输出的LI标记内添加一个html A标记。沿着这些线应该工作:
<?php
function listFolderFiles($dir){
$ffs = scandir($dir);
echo '<ol>';
foreach($ffs as $ff){
if($ff != '.' && $ff != '..'){
echo '<li class="title">';
if(is_dir($dir.'/'.$ff)){
echo $ff;
listFolderFiles($dir.'/'.$ff);
}else{
echo '<a href="'.$dir.'/'.$ff.'">'.$ff.'</a>';
}
echo '</li>';
}
}
echo '</ol>';
}
listFolderFiles('test');
?>
这很有效很好,但是,它将所有东西变成一个链接,包括文件夹名称。我只想将文件夹中的文件作为链接。所以我需要以某种方式从文件中分离出文件夹名称。 – 2013-04-08 10:34:27
我做了一个快速和肮脏的编辑,应该做我认为的诡计。新行只是检查文件名是否与目录名相同,因此它可能不适用于所有情况 – cronoklee 2013-04-08 10:36:52
这似乎没有为我显示任何东西。有没有一种方法只是回显子目录名称,然后将该目录中的所有文件作为链接回显? – 2013-04-08 10:41:52
我建议这样做递归。看看['DirectoryIterator' class](http://www.php.net/manual/en/class.directoryiterator.php) – Voitcus 2013-04-08 10:20:29
你可以举例说明'链接到这些文件夹中每个文件'的含义? – Baba 2013-04-08 10:21:20
刚刚添加了一个例子。查看描述 – 2013-04-08 10:24:54