scandir没有正确渲染
下面是与问题相关的代码。基本上,问题是,我的网站根目录正确显示文件夹“测试”,但一旦您按照链接进入“测试”,它不再显示测试。scandir没有正确渲染
$src = scandir($_SERVER['DOCUMENT_ROOT']);
foreach ($src as $path){
if (is_dir($path)){
if ($path !== 'stats' and $path !== 'data' and $path !== '..' and $path !== '.'){
echo "<li><a href='/$path'>$path</a></li>";
}
}
}
这里是一个print_r
$src
的
Array
(
[0] => .
[1] => ..
[2] => Test
[3] => background.png
[4] => content_back.png
[5] => data
[6] => footer.png
[7] => header.png
[8] => index.php
[9] => main.html
[10] => stats
[11] => style.css
)
您需要使用绝对路径is_dir:
if (is_dir($_SERVER['DOCUMENT_ROOT'] . '/' . $path)){
澄清Pitchinnate:一旦您关注链接,scandir正在寻找从您的新文件夹(DOCUMENT_ROOT/Test)中的DOCUMENT_ROOT抓取的内容,而不是DOCUMENT_ROOT中的内容。你正在使用相对引用。 – Jason 2013-04-03 19:04:35
if(is_dir($ _ SERVER ['DOCUMENT_ROOT']。$ path)){ 正在使用中。主页面没有改变。改回 – 2013-04-03 19:04:50
,我只是意识到,这将使我的代码相对无关,所以我可以看到他正在尝试,但不是预期的效果。无论如何,感谢您的帮助,但由于这不是我寻找的解决方案,我不打算将其标记为答案。 – 2013-04-03 19:06:10
之前,点击之后什么在你的$ _ SERVER [ 'DOCUMENT_ROOT'] “测试”? – periklis 2013-04-03 18:56:15
为什么要这样呢?你只是提取子目录,但无需获取有关父目录的信息。 – 2013-04-03 18:56:15
从文档根目录扫描所有内容,这是www.codebundle.net/,所以我认为它们将以相同的方式呈现,因为扫描的目录没有更改。网站上显示的调试代码显示了这两个页面上文档根目录的scandir内容,与这两个页面相关。你可以看到它是一样的。 – 2013-04-03 18:57:51