我有一个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__);
这样的事情,我相信这很可能是我要解决这个问题的方法。
我看到非常类似的问题与this这样的答案。我希望这个脚本独立于索引。有没有办法让这种情况发生?
答案 0 :(得分: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"]);