【问题标题】:PHP rquire_once from rootPHP require_once 从根
【发布时间】:2026-01-13 14:25:01
【问题描述】:

我在 PHP 中很新。

我想在另一个像这样的 php 文件中包含一个来自 root 的 php 文件。

require_once "/getPublisher.php?id=' . $xy;

我输入此代码的文件位于“/page/page.php”中。

--------------- ROOT -----------------
    -page
       -> page.php----------------
                                 - trying to require_once '/getPublisher.php'
                                 - into '/page/page.php'
    -getPublisher.php-------------

我正在找回这些错误代码。

警告:require_once(/users/uplade/www/getPublisher.php?id=123) [function.require-once]:无法打开流:没有这样的文件或 /users/uplade/www/page/page.php 中第 83 行的目录

致命错误:require_once() [function.require]:打开失败 必需的'/users/uplade/www/getPublisher.php?id=123' (include_path='.') 在 /users/uplade/www/page/page.php 上 第 83 行

那么如何在非根文件中包含根文件呢?

编辑:

警告:require_once(/getPublisher.php) [function.require-once]:无法打开流:第 84 行的 /users/uplade/www/page/page.php 中没有这样的文件或目录

我做错了什么。

解决方案: 我删除了斜杠 require_once 'getPublisher.php';这对我有用!

【问题讨论】:

  • 您的文件是否位于 /users/uplade/www/getPublisher.php?
  • 按文件系统路径包含/要求文件,而不是 Web 路径;并且您的文件按名称包含一个文件,螺母作为一个 url,所以不要以这种方式传递参数
  • @Webomatik 是的。删除了所有参数,仍然给出与以前相同的错误。
  • 您从/users/uplade/www/page 中的文件中包含/users/uplade/www 中的一个文件,因此可能是require_once "../getPublisher.php";,而不是使用来自文件系统根目录的绝对文件系统引用

标签: php include root require-once


【解决方案1】:

你不能在 require() 上使用参数。尝试删除它:

require_once "/getPublisher.php";

【讨论】:

  • 你的文件有一个大写的“P”,是这样吗?
  • 好的,所以应该是 require_once "/users/uplade/www/getPublisher.php";
  • require 从你服务器的根目录开始,而不是网络根目录。
  • 检查了该名称 100 次。是的,P 在那里。
  • looooooool,我删除了斜线,它起作用了 argh !我很生气,但也很高兴。
【解决方案2】:

使用require_once "/getPublisher.php";,您试图从文件系统根目录中包含一个文件,而不是从文档根目录。

如果文件位于同一目录中,您可以像这样包含它: require_once "getPublisher.php";

但在您的情况下,它是上一级的,所以只需像这样包含它: require_once "../getPublisher.php";

【讨论】:

    【解决方案3】:

    reuireinclude(及其_once 变体)根据文件系统的绝对路径定位文件,回退到一组可配置的包含路径(用于将共享库放置在标准位置)。

    当您不知道文件在文件系统上的确切位置时(例如,因为您要将软件安装到不同服务器上的不同位置),有两种主要方法可以可靠地引用文件:

    • 相对于“文档根目录”,即在 Web 服务器中配置为 URL“/”位置的路径。该目录可用作超全局变量$_SERVER['DOCUMENT_ROOT'];例如require $_SERVER['DOCUMENT_ROOT'] . '/getPublisher.php';
    • 相对于当前文件,即您正在编写 PHP 代码的文件(无论该文件是如何访问的)。该目录可用作魔术常量__DIR__;例如require __DIR__ . '/../getPublisher.php';

    请注意,在第二个示例中,我必须使用 .. 从当前目录“向上爬”,这意味着“父目录”;你可以用这个爬到你喜欢的高度:'/../../../../' 等等

    【讨论】: