包含/要求HTTP地址

时间:2010-08-23 15:46:42

标签: php http include require

我需要包含一个我只能通过完整的HTTP地址访问的PHP文件。我对这个话题很困惑,我听说这是一个不好的做法。我该如何解决?

3 个答案:

答案 0 :(得分:2)

来自手册:http://php.net/manual/en/function.include.php

还阅读 附加的安全警告

如果在PHP中启用了“URL fopen wrappers”(它们是默认配置),您可以使用URL指定要包含的文件(通过HTTP或其他支持的包装器 - 请参阅支持的协议列表/用于协议列表的包装器而不是本地路径名。如果目标服务器将目标文件解释为PHP代码,则可以使用与HTTP GET一起使用的URL请求字符串将变量传递给包含的文件。严格来说,这与包含文件并使其继承父文件的变量范围完全相同;该脚本实际上正在远程服务器上运行,然后结果将包含在本地脚本中。

答案 1 :(得分:1)

是的,建议不要包含HTTP,除非您确实知道来源。 如果您只想获取它的内容而不执行PHP代码,则可以使用:

   

这个,必须打开PHP设置allow_url_fopen。 使用cURL的另一个选项(无耻地从PHP手册中获取):

<?php
// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// grab URL and pass it to the browser
curl_exec($ch);

// close cURL resource, and free up system resources
curl_close($ch);
?>

如果有必要,你应该通过htmlentities()传递它。

如果您在同一台服务器上,则可以使用:

<?php
readfile('footer.html');
?>

答案 2 :(得分:0)

这是非常糟糕的做法。为什么不包括文件的本地副本,而是使用SSH将其与远程服务器上的副本同步,而不是包含它。