php - 我应该如何在多个目录中正确包含同一个文件?
问题描述
我目前正在开发一个具有基本目录结构的非常简单的多页 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'); ?>
它有效,但似乎/感觉不正确。我应该如何声明包含文件的路径,该文件定义了如何声明包含文件的路径?
搜索了几个小时后,我仍然没有找到答案。如果有人有答案或可以指出我正确的方向,请告诉我。
解决方案
推荐阅读
- sql - How to aggregate from a snowflake pivot where keys have distinct value for each row?
- python - python - 如何在一个套接字上使用传入数据流来处理Python中的多个并行进程?
- oracle - 自治事务在 Oracle 中有自己的会话吗?
- javascript - django:从相同的初始表单发送两个 ajax 请求
- python - 使用正则表达式 python 在邮政编码后提取所有(荷兰)城市名称
- google-analytics-api - 谷歌分析报告api查询六周
- sql - 如何使用 sql 脚本从我的数据库中查找特定表
- php - PHP Mongodb 查询变量不进入 foreach
- laravel - Laravel:使用名称包含空格的where子句
- c++ - C++ 输出参数导致内存泄漏