我有几个子域包含在我的根站点上方的它们自己的目录中,并且在我的根目录中有一个assets文件夹。例如:
/
/assets/
/forums/
/blog/我尝试在根目录和子目录的php页面上都需要()文件,例如,在根目录的index.php和论坛目录的index.php中都需要() assets/include/form.php。但是,在form.php中,另一个要求是尝试获取包含目录中包含的另一个文件。
我似乎找不到一种方法在这个论坛中需要一个文件,它可以同时在根目录的index.php和form.php目录的index.php上工作。
有没有什么方法可以显式要求从根目录开始的文件?
发布于 2011-10-03 07:59:17
有几种方法可以实现这一点。
使用form.php中的相对路径
require_once __DIR__ . '/otherfile.php';如果您使用的是PHP5.2或更早的版本,则可以使用dirname(__FILE__)而不是__DIR__。阅读更多关于魔术常量here的内容。
使用$_SERVER['DOCUMENT_ROOT']变量
这是文档根目录的绝对路径:/var/www/example.org/或C:\wamp\www\。
文档根目录是根级别文件所在的文件夹:http://example.org/index.php应该在$_SERVER['DOCUMENT_ROOT'] . '/index.php'中
用法:require_once $_SERVER['DOCUMENT_ROOT'] . '/include/otherfile.php';
使用自动加载器
如果它非常简单,那么对于您的应用程序来说,这可能有点过头了。
设置PHP的包含路径
您还可以设置当您使用require()或include()时,PHP将在其中查找文件的目录。查看set_include_path() here。
用法:require_once 'otherfile.php';
备注:
我看到一些答案建议在require()中使用URL。我不建议这样做,因为PHP文件在包含之前会被解析。这对于HTML文件或输出HTML的PHP脚本来说是可以的,但是如果你只有一个类定义,你会得到一个空白的结果。
发布于 2017-09-16 15:59:33
如果更高一级使用:
include('../header.php');如果高出两个级别:
include('../../header.php');更多信息,请访问:http://forums.htmlhelp.com/index.php?showtopic=2922
发布于 2011-10-03 07:58:48
您有两个解决方案。您可以使用文件的完整URL,例如,如果您的文件位于'lib‘目录中,则可以使用: require_once ('http://www.example.com/lib/myfile.php')
或
你可以尝试在PHP中使用$_SERVER['DOCUMENT_ROOT']函数,但这并不总是那么简单。
https://stackoverflow.com/questions/7630002
复制相似问题