2

我有一个header.php我想包含在我正在制作的脚本的所有页面上的内容。它有导航栏并header.php包含auth.php一些基本身份验证,您希望标题页具有。

我遇到的问题是相对路径与绝对路径。我的目录结构如下所示

/root
  -index.php (contains include ('inc/header.php');)
  -auth.php
  /inc
     -header.php (contains include ('auth.php);)

现在这工作得很好。但是,当我添加一些功能并获得以下目录结构时,事情开始中断

/root
  -index.php (contains include ('inc/header.php');)
  -auth.php
  /inc
     -header.php (contains include ('auth.php);)
  /newFunctionality
     -newStuff.php (contains include('../inc/header.php') but breaks because of relative paths fidning auth.php

我玩过类似的东西$fullPath = dirname(__FILE__);,我相信这很可能是我要解决这个问题的方法。

我见过非常相似的问题,答案是这样的。不过,我希望这个脚本独立于索引。有没有办法做到这一点?

4

1 回答 1

1

我一直发现设置基本路径常量并在此基础上包含我的顶级脚本是最容易的

  define ('APP_ROOT', '/path/to/application/root');
  include(APP_ROOT."/libs/MyFile.php");

通常我会把它(连同任何其他站点常量)放在一个包含文件中,并相对于文档根目录包含它

  include($_SERVER["DOCUMENT_ROOT"]."/config/site.php");

或在我的 .htaccess 中指定文件的位置

  SetEnv APP_CONFIG /path/to/application/config.php

然后在 php

  include ($_SERVER["APP_CONFIG"]); 
于 2013-07-10T16:49:02.510 回答