猿问

有没有办法在不使用“../”的情况下将文件包含在多个目录中

我有一个服务器,上面有几个目录。我有这个文件需要包含一个 php 文件 3 个目录。

include "../../../folder/neededThis.php" 工作得很好,但如果你在不同的功能上做几次,计算一个文件有多少个目录就变成一件苦差事。

有没有办法通过指定整个路径而不是使用“ ../”来包含文件

例如。 include function(path/to/my/folder/neededThis.php);


泛舟湖上清波郎朗
浏览 115回答 1
1回答

aluckdog

您可以使用,$_SERVER["DOCUMENT_ROOT"]因为这将始终返回您正在处理的任何内容的根文件夹。一个示例实现:<?php&nbsp;$file = $_SERVER["DOCUMENT_ROOT"]."path/to/my/folder/needThis.php";&nbsp;echo "#LOC: ".$file; //output where is the file&nbsp;include $file;&nbsp;&nbsp;#rest of code....?>它会返回这样的东西:#LOC: server/path/to/my/folder/needThis.php但是,如果您的文件被移动到服务器的子域,您需要调整受影响的文件,一种规避方法是使用 getcwd()例如:如果您的文件被移动到子域(例如:)server/subb,上面的脚本将返回如下内容:#LOC: server/path/to/my/folder/needThis.phpWarning: include(server/path/to/my/folder/needThis.php): failed to open stream: No such file or directory in server/subb/index.php on line 4如果我们更换$_SERVER["DOCUMENT_ROOT"],getcwd()问题就不会发生。采取预防措施,我不知道使用这种方法会有什么安全风险。
随时随地看视频慕课网APP
我要回答