PHP列表文件有异常

时间:2017-01-06 01:52:43

标签: php readdir opendir

我制作了一个PHP页面,其中显示了一个文件夹中的文件列表。既然我不想让某个人直接访问这个文件夹,我计划添加一个重定向到index.php的PHP脚本。我只是不希望这个文件出现在列表中

我可以只为此扩展程序添加例外吗?或者更好的想法?

if ($handle = opendir('manual')) {
    while (false !== ($entry = readdir($handle))) {
           if ($entry != "." && $entry != "..") {
               echo "<a href='manual/$entry' target='_blank'>$entry</><br>";
           }
     }
     closedir($handle);
}

2 个答案:

答案 0 :(得分:1)

如果您不希望index.php文件显示在此列表中,则只需使用if语句。

if ($handle = opendir('manual')) {
    while (false !== ($entry = readdir($handle))) {
           if ($entry != "." && $entry != "..") {
               if($entry!='index.php') // Go ahead only if the file is not index.php
                   echo "<a href='manual/$entry' target='_blank'>$entry</a><br>";
           }
     }
     closedir($handle);
}

而且,如果你想隐藏所有的php文件,那么你可以使用preg_match

if ($handle = opendir('manual')) {
    while (false !== ($entry = readdir($handle))) {
           if ($entry != "." && $entry != "..") {
               if (!preg_match('/.php/', $entry)) // Go ahead only if the file is not having .php as it's extension
                   echo "<a href='manual/$entry' target='_blank'>$entry</a><br>";
           }
     }
     closedir($handle);
}

答案 1 :(得分:0)

你可以简单地使用一个标志变量来识别访问者的状态,如果没有变量,让他重定向。通常我们使用session作为全局变量来完成工作