如何在多个目录中正确包含同一文件?

问题描述

我目前正在一个非常简单的具有基本目录结构的多页PHP网站上工作。像这样:

/
- index.PHP
- config.PHP
- services/
  - index.PHP
  - service-a.PHP
  - service-b.PHP
- projects/
  - index.PHP
  - project-name/
    - index.PHP
    - testimonials.PHP
- common/
  - head.PHP
- js/
- img/
- css/

不幸的是,由于添加了额外的本地文件夹,我的本地开发环境和生产环境在结构上不匹配。 因此,我创建了config.PHP(放置在我认为是根文件夹的位置)中,其中包含以下内容

define('ROOT_DIR',__DIR__);
define('ROOT_URL',($_SERVER["SERVER_NAME"] == "localhost") ? "http://localhost/website/" : "https://website.com/");

这些常量允许我在本地和远程环境中创建我所包含的任何文件绝对路径,无论它是另一个PHP文件还是图像或样式表。太好了,因为我想尽可能避免任何相对路径。

这是问题所在: 我需要在每个页面中包含配置文件,以便常量起作用。 对于首页/index.PHP)来说没什么大不了的。我只是将其添加文件顶部:

<?PHP include_once('config.PHP'); ?>

但是,对于子目录(/services/index.PHP)中的页面,我必须使用配置文件的相对路径,这是我要避免的事情:

<?PHP include_once('../config.PHP'); ?>

如果我们更深入地研究,例如/projects/project-name/index.PHP,我就必须这样包括

<?PHP include_once('../../config.PHP'); ?>

它可以工作,但似乎/感觉不正确。 我应该如何声明包含文件的路径,该路径定义了应如何声明包含文件的路径?

搜索了几个小时后,我仍然没有找到答案。如果有人有答案或可以指出正确的方向,请告诉我。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)