PHP 需要来自顶级目录的文件

2022-08-30 16:28:02

我有几个子域包含在根网站上方的自己的目录中,根目录中有一个资产文件夹。例如:

/
/assets/
/forums/
/blog/

我试图在根目录和子目录中的php页面上要求()文件,例如,assets/include/form.php在索引中都是必需的().php在根目录和索引中.php论坛目录中。但是,在form.php内部是另一个要求,尝试获取包含在infed目录中包含的另一个文件。

我似乎找不到一种方法来要求在此表单中包含一个文件.php它将同时适用于根目录的索引.php和论坛目录的索引.php。

有什么方法可以显式要求从根目录开始的文件吗?


答案 1

有几种方法可以实现这一目标。

使用相对路径form.php

require_once __DIR__ . '/otherfile.php';

如果您使用的是 PHP 5.2 或更早版本,则可以使用 代替 .在这里阅读更多关于魔术常数的信息dirname(__FILE__)__DIR__

使用变量$_SERVER['DOCUMENT_ROOT']

这是文档根目录的绝对路径:或在 Windows 上。/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 的包含路径

您还可以设置 PHP 在使用 或 时将查找文件的目录。点击这里查看require()include()set_include_path()

用法:require_once 'otherfile.php';


注意:

我看到一些答案建议使用.我不会建议这样做,因为PHP文件在包含之前会被解析。这对于输出HTML的HTML文件或PHP脚本是可以的,但是如果你只有一个类定义,你会得到一个空白的结果。require()


答案 2

如果一个级别更高,请使用:

include('../header.php');

如果高出两个级别:

include('../../header.php');

更多,请访问: http://forums.htmlhelp.com/index.php?showtopic=2922


推荐