我在服务器上设置了几个目录。我有这个文件,需要包括3个目录的php文件。
include "../../../folder/neededThis.php"
可以正常工作,但是如果您多次在不同的功能上执行该操作,则很难计算文件返回的目录数量。
是否可以通过指定整个路径而不是使用“ ../
”来包含文件
例如。 include function(path/to/my/folder/neededThis.php);
您可以使用它,$_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.php
Warning: 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()
就不会发生问题。
采取预防措施,我不知道使用此方法会有什么安全隐患。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句