0

我最近开始为我的服务器开发一个 PHP 文件管理器,因为我认为它使用起来非常方便,并且可以让我复习我的 PHP 技能。无论如何,我有几个问题希望能得到解答......

  • 当我列出我的目录时,总会有几个“点”。例如:.、..、Folder_1、Folder_2 等... 我将如何从我的目录列表中删除这些“点”?
  • 当我列出我的目录时,我当前的方法列出带有下划线的文件夹或名称中没有空格的文件夹没有问题。但是,它不能处理名称中带有空格的文件夹。有没有办法让我的文件管理器正确识别和处理名称中的空格?

这是我当前的代码...

<?php
global $dir_path;
if (isset($_GET["directory"])) {
    $dir_path = $_GET["directory"];
    //echo $dir_path;
}
else {
    $dir_path = $_SERVER["DOCUMENT_ROOT"]."/";
}

$directories = scandir($dir_path);
foreach($directories as $entry) {
    if(is_dir($dir_path . "/" . $entry )) {
        echo "<a href=?directory=" . $dir_path . "" . $entry . "/" . "><li>" . $entry . "</li></a>";
    }
    else {}
}

?>

非常感谢您的帮助,布兰登

PS“点”是否与我的服务器的 ext4 文件系统有关?这与我的问题并没有太大关系,我只是有点好奇。

4

1 回答 1

1

如果您只想要一个简单的版本:

foreach($directories as $entry) {
    if (is_dir($dir_path . "/" . $entry) && !in_array($entry, array('.','..'))) {
        echo "<a href=?directory=" . $dir_path . "" . $entry . "/" . "><li>" . $entry . "</li></a>";
    }
    else {}
}

这将检查./..例如当前目录和返回目录。关于空间,这听起来很奇怪。是链接不起作用还是scandir?如果是链接,请将空格替换为 %20,例如

$href="?directory=" . $dir_path . "" . str_replace(' ','%20',$entry) . "/";
echo "<a href='".$href.'"><li>' . $entry . '</li></a>';

更有可能我认为是 ""href周围没有引号,例如

echo '<a href="?directory="' . $dir_path . $entry . '/' . '"><li>' . $entry . '</li></a>';

反而。当您不添加引号时,带有空格的链接(例如“test 123”)将被href=test浏览器解释为,因为没有任何东西可以封装整个链接。应该是href="test 123"

于 2013-09-21T22:32:06.780 回答