include "../../../folder/neededThis.php" 工作得很好,但如果你在不同的功能上做几次,计算一个文件有多少个目录就变成一件苦差事。
有没有办法通过指定整个路径而不是使用“ ../”来包含文件
例如。 include function(path/to/my/folder/neededThis.php);
泛舟湖上清波郎朗
浏览 115回答 1
1回答
aluckdog
您可以使用,$_SERVER["DOCUMENT_ROOT"]因为这将始终返回您正在处理的任何内容的根文件夹。一个示例实现:<?php $file = $_SERVER["DOCUMENT_ROOT"]."path/to/my/folder/needThis.php"; echo "#LOC: ".$file; //output where is the file include $file; #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()问题就不会发生。采取预防措施,我不知道使用这种方法会有什么安全风险。