2010-08-23 87 views
1

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

+0

该文件有什么作用?它是否提供源代码?如果您需要其他建议,则需要添加更多详细信息。 – 2010-08-23 15:48:50

+0

这是一个包含在我的许多其他页面中的文件。它包含各种脚本,HTML和一些分析。我不能把它放在所有这些页面中,因为如果我需要编辑一些较小的内容,我将不得不浏览所有这些页面。 – Benny 2010-08-23 15:50:41

+0

在这个链接中,你可以看到你可以通过include来做到这一点Example#3 include()通过HTTP http://php.net/manual/en/function.include.php – 2010-08-23 15:51:56

回答

1

是的,除非您确实了解源代码,否则不推荐使用HTTP。 如果你只是想获得它的内容,不执行PHP代码,你可以使用:

Fot的这一点,PHP设置了allow_url_fopen必须开启。 使用卷曲的其他选项(从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); 
?> 

你应该让它通过ヶ辆()如果nescessary。

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

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

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

+0

这对我的需求来说太复杂了。 – Benny 2010-08-23 16:12:06

+0

只会复制一次(或者当它改变时)太复杂了吗?这个文件经常改变吗? – 2010-08-23 16:42:37

2

从手动:http://php.net/manual/en/function.include.php

也看过附着

如果“URL fopen wrappers”在PHP(它们在默认配置)启用安全警告,可以指定文件包括使用URL(通过HTTP或其他支持的包装 - 请参阅协议列表支持的协议/包装)而不是本地路径名。如果目标服务器将目标文件解释为PHP代码,则可以使用与HTTP GET一起使用的URL请求字符串将变量传递到包含的文件。这与严格意义上讲并不是一样的,包括文件并让它继承父文件的变量作用域;该脚本实际上正在远程服务器上运行,结果被包含在本地脚本中。