我需要包含一个我只能通过完整的HTTP地址访问的PHP文件。我对这个话题很困惑,我听说这是一个不好的做法。我该如何解决?
答案 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将其与远程服务器上的副本同步,而不是包含它。