自动列出服务器上某个位置的所有文件夹

时间:2014-01-28 23:29:11

标签: php drupal drupal-7

我想知道是否有办法从php文件列出我的所有客户端文件夹,但因为我在Drupal网站上运行,当我去他们网站的客户端文件夹的位置时,我得到一个404页面,因为它认为它是我正在寻找的drupal页面..因此我想制作它试图登陆的页面,并使该页面列出该URL的文件夹。

网址是simplemedia.dk/kunder/ - 而不是列出所有子文件夹,它显示了您可以看到的内容..

如果我输入完整的网址simplemedia.dk/kunder/merkur,我会将客户网站视为我想的。

我认为PHP是我需要的东西。

请帮帮忙?

3 个答案:

答案 0 :(得分:2)

.htaccces文件中的条目应该足以使其工作。将您的客户端站点放在子文件夹中,以便url看起来像simplemedia.dk/kunder/clients/merkur。

首先,修改Drupal .htaccess

# don't rewrite urls like this
RewriteCond %{REQUEST_URI} "/clients/"
RewriteRule (.*) $1 [L]

然后使用此条目将.htaccess文件添加到您的客户端文件夹

Options +Indexes

列出目录的内容。只要您在该目录中只有客户端文件夹,就不必担心将列表限制为目录。

我刚刚进行了快速测试,虽然Alex的代码是正确的,但如果没有一些.htaccess魔法,它将无法在Drupal网站的上下文中运行。内置的重写规则仍将修改请求,Drupal将为您提供404页面。

答案 1 :(得分:0)

<?php
foreach (glob("*") as $filename) {
    echo "<a href='./{$filename}'>{$filename}</a><br />\n";
}
?>

这应该输出给定目录中所有文件的列表

答案 2 :(得分:0)

Martin149走在正确的轨道上。由于您似乎只想列出子文件夹,因此glob具有GLOB_ONLYDIR标志。这将忽略目录中的所有文件,并且因为您想将PHP脚本放在kunder目录中,所以这里不会显示(因为您只查找目录)。

<ul>
<?php foreach (glob("*", GLOB_ONLYDIR) as $dir): ?>
    <li><a href='./<?php echo $dir ?>'><?php echo $dir ?></a></li>
<?php endforeach; ?>
</ul>