请注意;当需要或包括来自URl时,问题不在于require或include。(它在变量中) 我面临一个奇怪的错误如下:
Open
这导致变量错误
未定义的变量
虽然这个:
require_once "http://".$_SERVER['HTTP_HOST'].'/engine/header.php';
不会造成任何问题!
如果您拼错了任何内容或写下了不易理解的单词,请抱歉。
答案 0 :(得分:1)
如果启用了URL包含包装器,则只能包含URL,因此请检查php配置中allow_url_include
是否设置为true。
答案 1 :(得分:0)
您的答案位于here。
如果在PHP中启用了“URL include wrappers”,则可以使用URL指定要包含的文件(通过HTTP或其他受支持的包装器 - 请参阅支持的协议和包装器以获取协议列表)而不是本地路径名。如果目标服务器将目标文件解释为PHP代码,则可以使用与HTTP GET一起使用的URL请求字符串将变量传递给包含的文件。严格来说,这与包含文件并使其继承父文件的变量范围完全相同;该脚本实际上正在远程服务器上运行,然后结果将包含在本地脚本中。
这意味着如果您包含URL,它将是您当前范围之外的独立PHP执行。您需要通过$_GET
超全局传递变量。
如果include
/ require
是绝对/相对文件路径,您将能够通过该范围访问变量。
答案 2 :(得分:0)
当您通过网络服务器访问.php
文件时,网络服务器会执行该文件,而发送给客户端的响应是脚本的输出,而不是脚本的来源码。但是require
期望从文件中读取PHP源代码,因此它可以在当前脚本的上下文中执行它。
因此,除非header.php
采取特殊措施在远程访问PHP源代码时输出PHP源代码,否则尝试使用URI无法正常工作。