完整的URL无法使用PHP包括

时间:2012-11-13 21:56:56

标签: php php-include

所以,我正在尝试使用php include插入一个文件,但由于某些原因它无法使用完整的URL。

这有效:

<?php include 'menu.html' ?>

但这不是:

<?php include 'http://domainname.com/menu.html' ?>

有什么想法吗?

6 个答案:

答案 0 :(得分:7)

检查php.ini -

allow_url_include

但我不得不说,如果你没有真正的理由,请不要使用它。它是最糟糕的php弱点之一,也是严重的安全威胁。

答案 1 :(得分:6)

您的php.ini是否允许您使用include远程文件?

如果它位于您自己的域上,那么要求绝对URL是没有意义的,因为这会导致服务器打开与自身的连接,以便在直接文件操作变得如此简单时通过HTTP检索文件。 / p>

答案 2 :(得分:6)

include旨在包含和评估指定的PHP文件。如果你在本地获取它,它可以像PHP一样处理 - 如果你通过一个完整的URL获取它,你将得到结果HTML(理论上......你可能只会得到一个错误)。

Supporting Docs

include 'menu.php' //Internally process a PHP file to generate HTML

file_get_contents('http://domainname.com/menu.php'); //Fetch resutling HTML

答案 3 :(得分:1)

include标记用于引用其他PHP脚本文件。如果它不是您要处理的脚本,您可能需要查看使用:

$FileContents = file_get_contents("http://www.domainname.com/menu.html");

答案 4 :(得分:1)

不要使用绝对网址。相反,尝试从根目录链接。 像这样:

$path = $_SERVER['DOCUMENT_ROOT']."/layer1/layer2/layer3/";
include($path."file.php");

答案 5 :(得分:0)

allow_url_fopen中,allow_url_includephp.ini或两者都被设置为0(已禁用)。

但是,在PHP脚本中,HTML不应该是include。其他答案似乎也解决了这个问题。