我正在寻找一种更好的方法来处理 PHP 中的相对路径。我遇到的一个问题是包含来自子目录的文件,该子目录也包含文件。使用此过程导致相对路径中断。如果文件不存在,则通过更改变量(路径)来缓解此问题。但是,出于某种原因,我不太满意,因为我认为必须有更好的方法来处理这个问题。
例子:
ROOT/config/config.php
ROOT/includes/functions.php
ROOT/includes/header.php<-- 包括functions.php和config.php
ROOT/index.php<-- 包括header.php
ROOT/admin/index.php<--- 还包括header.php(as ../includes/header.php) 并具有以下代码以修复损坏的链接
下面是我使用的代码,它确实解决了问题,但我只是在验证这是否可以,或者是否有更好的方法来处理相对文件路径。
define('PREV_DIR', '../');
$config_file = './config/config.php';
$functions_file = './includes/functions.php';
if ( !file_exists($config_file)) {
$config_file = PREV_DIR . './config/config.php';
}
if ( !file_exists($functions_file)) {
$functions_file = PREV_DIR . './config/config.php';
}
include $config_file;
include $functions_file;
虽然我已经实现了我的目标,但我只想继续采用最佳实践并尽量减少草率的方法。
拉丁的传说