包含和相对路径出现问题

时间:2015-04-24 21:20:33

标签: php include relative-path

我正在构建一个非常小的页面,它将在为期5天的会议期间生效。每天网站都需要加载新内容,因此我使用一个小脚本加载一个包含文件。我试图让我的包括成为相对路径,但有些东西不能正常工作。下面是我正在使用的当前代码,它使用一个数组(24代表今天的日期,所以我可以查看是否有效),映射到文件的日期和默认的内容应该条件不返回结果。

        <?php

        $path = $_SERVER['HTTP_HOST'];

        $date = date("j");
        $event_dates = array(24,15,16,17,18,19);

        if (in_array($date, $event_dates)) {
            $path .= "/_includes/date-".$date.".php";
            include($path);
        }
        else {
            $path .= "/_includes/default.php";
            include($path);
        }

    ?>

如果我包含“_includes / default.php”,一切正常,这可能需要现在的解决方案但是我想弄清楚相对路径问题,如果我碰到这个问题以后问题。另外,如果我将include更改为echo,那么我会得到我期望的结果。

1 个答案:

答案 0 :(得分:1)

由于您正在使用.=,因此"/_includes/..."字符串将连接到$path。然后它将具有localhost/_includes/...形式的某些内容。这不包含方案(HTTP(S)),因此只有在该目录中实际拥有文件夹localhost时才会有效。

如果您想要当前目录,可以使用dirname(__FILE__)代替。如果./_includes/...是当前目录的子目录,也可以使用_includes作为路径。