注意;问题不在必需或包含中。(它在变量中(同时要求或包含来自 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要求它将无法正常工作。