如何在包含的文件中的opendir()中设置路径


How to set the path in opendir() in an included file?

在我的应用程序根文件夹中,我有一个名为"articles"的文件夹,其中有一些文件。在我的根文件夹中,我有头文件和其他一些文件。articles目录中的文件也使用了相同的头文件。

在我的头文件中,我有一个下拉菜单,列出了articles目录中的文件。我使用了以下代码。

<?php
                $dir = "./articles";
                if ($handle = opendir($dir)) {
                    while (false !== ($entry = readdir($handle))) {
                        if ($entry != "." && $entry != ".." && $entry != "images" && $entry != "index.php") {
                            $foo = $entry;
                            $foo = str_replace("_", " ", $foo);
                            $foo = str_replace(".php", "", $foo);
                            $foo = ucwords($foo);
                            ?>
                            <a class="dropdown-content-a" href="<?php echo "$entry" ?>"><?php echo $foo ?></a>
                            <?php
                        }
                    }
                    closedir($handle);
                }
                ?>

这在根文件夹中的文件中可以很好地工作,但在"articles"文件夹的文件中不起作用(但头文件仍在根文件夹内,相对于头文件,路径"./articles"是正确的)。

如何通过使用相同的头文件来克服这个问题?

使用(..)cd上一个目录

include_once(dirname(__FILE__).'/../filename.php');

也许您可以尝试一个条件式的解决方案。检查路径并决定是否使用".."。