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

Php 自动列出服务器上某个位置的所有文件夹,php,drupal,drupal-7,Php,Drupal,Drupal 7,我想知道是否有办法从一个php文件中列出我的所有客户机文件夹,但是因为我在Drupal网站上运行,当我去他们网站的客户机文件夹位置时,我得到了一个404页面,因为它认为这是我要找的Drupal页面。。因此,我想让它试图登陆的页面,并让该页面列出该url的文件夹 url是simplemedia.dk/kunder/-它显示的不是所有子文件夹,而是您可以看到的 如果我输入完整的url simplemedia.dk/kunder/merkur,我会像我想象的那样得到客户网站 我想PHP是我需要的东西

我想知道是否有办法从一个php文件中列出我的所有客户机文件夹,但是因为我在Drupal网站上运行,当我去他们网站的客户机文件夹位置时,我得到了一个404页面,因为它认为这是我要找的Drupal页面。。因此,我想让它试图登陆的页面,并让该页面列出该url的文件夹

url是simplemedia.dk/kunder/-它显示的不是所有子文件夹,而是您可以看到的

如果我输入完整的url simplemedia.dk/kunder/merkur,我会像我想象的那样得到客户网站

我想PHP是我需要的东西

请帮忙?


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

这将输出给定目录中所有文件的列表,这些文件位于正确的轨道上。由于您似乎只想列出子文件夹,所以glob有一个
glob_ONLYDIR
标志。这将忽略目录中的任何文件,因为您希望将PHP脚本放入kunder目录中,所以这里不会显示该脚本(因为您只查找目录)


您的.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
它将列出目录的内容。只要该目录中只有客户机文件夹,就不必担心将列表限制为目录

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

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

这似乎符合我的要求。。除了现在,它在列表中显示根文件夹,但我希望它显示一个子文件夹。。在哪里添加子文件夹路径?我希望显示的列表的路径。glob的第一个参数“*”是筛选器。因此,您可以将其修改为例如glob(“kunder/*”,glob_ONLYDIR)。当我使用提供的代码时,它只显示“kunder”作为链接,我希望它显示“kunder”的内容,这当然是只包含安装的文件夹。尝试过了,但现在我得到了kunder/kunder/clientfolder,因为我正在尝试显示列表的页面上,被称为simplemedia.dk/kunder/。。我试着用./kunder/*玩,但似乎没有达到预期的效果。。