Php 获取服务器上目录中的直接子目录

Php 获取服务器上目录中的直接子目录,php,Php,我用PHP写了一个CMS。它可以在大多数服务器上正常工作,但我在最新的托管帐户上遇到了一个奇怪的问题。这要么是路径问题,要么是编码问题。后者似乎还可以,因为这个脚本在我的所有其他帐户上都运行良好,这就是我请求帮助的原因 当我第一次安装CMS工具时,我运行了一个名为inventory.php的脚本,在该脚本中,我尝试从脚本的位置获取并显示服务器上的所有目录,该位置是根目录下的2或3个目录,具体取决于服务器。我尝试使用一个全局路径,它可以到达根目录并从根目录返回它能找到的所有目录。如果该文件有效,则

我用PHP写了一个CMS。它可以在大多数服务器上正常工作,但我在最新的托管帐户上遇到了一个奇怪的问题。这要么是路径问题,要么是编码问题。后者似乎还可以,因为这个脚本在我的所有其他帐户上都运行良好,这就是我请求帮助的原因

当我第一次安装CMS工具时,我运行了一个名为inventory.php的脚本,在该脚本中,我尝试从脚本的位置获取并显示服务器上的所有目录,该位置是根目录下的2或3个目录,具体取决于服务器。我尝试使用一个全局路径,它可以到达根目录并从根目录返回它能找到的所有目录。如果该文件有效,则整个CMS有效;如果不是。。。这就是我来这里的原因

以下是扫描目录的代码:

$main_root = realpath('../../');
echo '<b style="color:orange;">All The dirs on this server:</b><hr><br>';
$whats_on_the_server = array_filter(glob($main_root.'/*'), 'is_dir');
foreach($whats_on_the_server as $on_server) {
    $on_server = trim($on_server);
    if(stristr($on_server,'.')){    
        $arr1 = preg_split('^/^',$on_server);   
        echo $arr1[4].'<br>';
    }
}
但是,我必须获得根目录上所有目录的名称。

您应该使用:

$main_root = dirname(__FILE__).'../../';

其中_FILE是当前文件的PHP常量。

那么您可能没有访问根目录的权限,但有访问给定子目录的权限

顺便说一句,你可以通过简单的

$main_root = realpath('/');

这永远是你最上进的道路

哪个操作系统和web服务器?@RmH:当你写root时,你是指文件系统根、文档根还是其他什么?注意和不是语义上的;使用它们是一个坏习惯。有序或无序的列表元素更合适。内联风格应该同样只在某些情况下使用。大家好,谢谢你们的快速回复!因此,您可能没有访问根目录的权限,但有访问给定子目录的权限?完全正确!这就是我的问题,我不得不更换服务器,因为他们不会授予我必要的权限。敏锐的洞察力!
$main_root = realpath('/');