从 url 请求时出现变量错误


Error with variables when requiring from url

注意;问题不在必需或包含中。(它在变量中(同时要求或包含来自 URl我面临以下奇怪的错误:

require_once "http://".$_SERVER['HTTP_HOST'].'/engine/header.php';

这会导致变量错误

未定义的变量

虽然这:

require_once '/engine/header.php'; 

不会造成任何问题!

抱歉,如果拼写错误或写了无法理解的单词。

只有在启用了 URL 包含包装器的情况下,您才能包含 URL,因此请检查 php 配置中是否将 allow_url_include 设置为 true。

您的答案位于此处。

如果在 PHP 中启用了"URL 包含包装器",则可以使用 URL(通过 HTTP 或其他受支持的包装器 - 有关协议列表,请参阅支持的协议和包装器(而不是本地路径名来指定要包含的文件。如果目标服务器将目标文件解释为 PHP 代码,则可以使用 URL 请求字符串将变量传递给包含的文件,就像与 HTTP GET 一起使用一样。严格来说,这与包含文件并让它继承父文件的变量范围不同;该脚本实际上是在远程服务器上运行的,然后将结果包含在本地脚本中。

这意味着如果您包含一个 URL,它将是您当前范围之外的独立 PHP 执行。您需要通过$_GET超全局变量传递变量。

如果include/require是绝对/相对文件路径,您将能够通过该范围访问变量。

当您通过 Web 服务器访问.php文件时,Web 服务器会执行该文件,发送到客户端的响应是脚本的输出,而不是脚本的源代码。但是require希望从文件中读取PHP源代码,以便它可以在当前脚本的上下文中执行它。

因此,除非header.php在远程访问PHP源代码时采取特殊措施来输出PHP源代码,否则尝试使用URI要求它将无法正常工作。