如何在 PHP 中设置绝对包含路径?

php
2022-08-30 11:50:40

在HTML中,我可以通过以“/”开始文件路径来查找从Web服务器的根文件夹开始的文件。喜欢:

/images/some_image.jpg

我可以将该路径放在任何子目录的任何文件中,它将指向正确的图像。

对于PHP,我尝试了类似的东西:

include("/includes/header.php");

...但这行不通。

我认为这个页面是说我可以设置一次,之后,它将被假设。但我不太明白语法。这两个例子都以句点开头,它说:include_path

使用 .在包含路径中允许相对包含,因为它表示当前目录。

相对包含正是我不想要

如何确保我的所有包含都指向根/包含文件夹?(奖励:如果我想将该文件夹放在公共目录之外怎么办?

澄清

我的开发文件目前由 XAMPP/Apache 提供。这是否会影响绝对路径?(我还不确定生产服务器会是什么。

更新

我不知道我的问题是什么。我上面引用的东西正是我正在寻找的,语法并不是真的令人困惑。我刚刚尝试过,效果很好。include_path

我想到的一件事是,有些人可能认为“/some/path”是一条“绝对路径”,因为他们认为操作系统是Linux。此服务器是 Windows,因此绝对路径必须以驱动器名称开头。

总之,问题解决了!:)


答案 1

我所做的是将一个config.php文件放在我的根目录中。此文件包含在我的项目中的所有 PHP 文件中。在该配置.php文件中,然后执行以下操作;

define( 'ROOT_DIR', dirname(__FILE__) );

然后在所有文件中,我知道我的项目的根源是什么,可以做这样的事情

require_once( ROOT_DIR.'/include/functions.php' );

抱歉,离开公共目录没有奖励积分;)这也产生了不幸的副作用,即您仍然需要一个相对路径来查找config.php,但它使其余的包含变得更加容易。


答案 2

一个策略

我不知道这是否是最好的方法,但它对我有用。

$root = $_SERVER['DOCUMENT_ROOT'];
include($root."/path/to/file.php");

推荐