每个php程序员都知道php的include()函数用于在另一个php文件中包含一个php文件,但我想知道是否可以包含一个驻留在不同server.i.e中的php文件。假设我想在b.php中包含a.php,现在假设a.php和b.php驻留在不同的服务器中,在这种情况下是否可以在b.php中包含a.php?
答案 0 :(得分:2)
来自the manual:
如果在PHP中启用了“URL fopen wrappers”(它们是默认配置),您可以使用网址指定要包含的文件 (通过HTTP或其他受支持的包装器 - 请参阅Supported Protocols and Wrappers以获取协议列表)而不是本地路径名。如果目标服务器将目标文件解释为PHP代码,则可以使用与HTTP GET一起使用的URL请求字符串将变量传递给包含的文件。 严格来说,这并不包括文件并使其继承父文件的变量范围;该脚本实际上正在远程服务器上运行,然后结果将包含在本地脚本中。
凭借60.2k代表赋予我的权力,我建议你不要这样做。
答案 1 :(得分:2)
我认为你从错误的角度看待它。大多数情况下,您不希望合并来自不同服务器的PHP文件 - 为此,您使用其他技术来做到这一点。
如果您想要包含来自其他服务器的文件并获取源代码,您需要获得这样做的权限,并且,假设您拥有权限后,您只需将源代码复制到您的服务器即可。 / p>
但是,如果要在不是方法的文件之间进行通信。您可以使用 AJAX , JSON 和 GET参数进行通信(可能还有许多其他方法)。
答案 2 :(得分:0)
是的,这是可能的,但可能是一个糟糕的决定?如果b.php发生任何事情,a.php的服务器也会受到攻击。 file_get_contents和exec()允许你这样做。重要的是它运行还是只需要输出?
答案 3 :(得分:0)
正如其他人所说,不,不可能。 (否则你将能够阅读任何人的服务器代码)
在每个视图中使用SOAP或REST之类的东西与其他机器进行通信会更好。
答案 4 :(得分:0)
使用位于单独服务器上的PHP文件会导致许多问题。如果您的服务器可以访问PHP文件的代码,那么其他任何希望浏览该URL的人也可以访问。
服务器可以看到的任何东西都是EXTERNAL,任何人都可以看到。