【发布时间】:2022-01-25 15:27:13
【问题描述】:
我正在从事一个包含很多内容和要求的项目。我不想每次从本地主机部署到实时服务器时都更改此设置。
所以我想使用$_SERVER['DOCUMENT_ROOT'],它工作得很好,直到我检查了我的 git,它直接推送到我的实时服务器上的备份文件夹。它不在根中,而是在低一级。
此备份文件夹中使用 include 或 require 的所有文件都从我的服务器根目录 (public_html/) 而不是项目所在的当前文件夹 (public_html/backup/) 获取它们的文件。
所以这行不通。之后我尝试了getcwd();,解决了上述情况,但现在我无法在本地主机上包含文件。
所以现在我想检查一下文件当前是在我的本地电脑上还是在我的实时服务器上,如下所示:
$checkpath = getcwd();
$localcheck = 'C:\\';
// Test if path contains C:\
if(strpos($checkpath, $localcheck) !== false){
$absolute_path = $_SERVER['DOCUMENT_ROOT'];
} else{
$absolute_path = getcwd();
}
我唯一的问题是,当我的问题是包含时,如何将它包含在所有文件中?
也许有更好的方法来获得一条无论是实时还是本地路径都始终有效的路径?
【问题讨论】:
-
“更好的方法”是使用PSR-4 autoloader。