PHP包括帮助

时间:2010-11-05 16:26:52

标签: php

为什么这样做:

<?php include "includes/top_nav.php"; ?>

为什么这对我不起作用?

<?php include "http://localhost/includes/top_nav.php"; ?>

4 个答案:

答案 0 :(得分:5)

可能在该服务器上禁用了URL fopen包装器

http://www.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen

答案 1 :(得分:2)

我看到两个可能的原因。

首先,您的服务器可能未配置为允许访问URL文件。在这种情况下的错误将显示“在服务器配置中禁用URL文件访问”

如果包含确实有效,但不包括您的期望,那么这就是另一个故事。在这种情况下,理解的关键是如何处理这样的请求。在执行您共享的脚本时,您的服务器将执行HTTP请求(自身)并请求top_nav.php的输出。这是对服务器的全新请求,因此有关 原始 请求的详细信息不再有效。

请求将来自不同的用户(即Apache),位于不同的IP地址(即您的服务器地址,而不是原始客户端),具有不同的cookie,具有不同的$_GET数据和没有$_POST数据。

因此,如果top_nav.php以任何方式检查服务器变量,环境变量,PHP变量或渲染时的任何其他运行时状态,则会失败。

答案 2 :(得分:1)

您需要按URL fopen wrappers启用in the documentation,即使启用了{{3}},也无法使用Windows。

答案 3 :(得分:0)

From PHP docs

  

如果启用了“URL fopen wrappers”   PHP(它们是默认的   配置),你可以指定   要使用URL包含的文件(通过   HTTP或其他支持的包装器 - 请参阅   支持的协议/封装器列表   对于协议列表而不是   本地路径名。

服务器上的URL fopen包装器有什么价值?