是否可以调用另一个域名不同的网站上的文件中找到的PHP函数?
例如,我知道从同一个域中的另一个文件调用PHP函数(比如在aaa.php中找到的函数aaa())我只需要这样做(只有一些简化的假设):
include_once('aaa.php');
aaa();
我尝试过类似的事情,例如:
include_once('http://othersite/aaa.php');
aaa();
我无法使其工作(页面似乎加载正常,没有错误消息,但函数不执行)。我试过require(),这给了我一个空白的屏幕。我对fopen也没有成功。
如果可以这样做,我该怎么办?
答案 0 :(得分:6)
include
和require
(以及他们的_once
变体)将本地文件系统路径作为参数。域与它无关。
是的,您也可以在其中放置一个URL(如果您启用了fopen包装器),但PHP将只下载该文件并尝试执行它。换句话说,为了实现这一点,如果您在浏览器中输入http://othersite/aaa.php
,它应该显示PHP源,而不是处理它的结果。
将网址传递给include
\ require
时,PHP无法执行任何操作。它受othersite
网络服务器的支配。如果它没有返回PHP代码,那么PHP就无法实现它。
答案 1 :(得分:0)
如果将其他服务器设置为将PHP文件作为源提供 - 即不执行它们,则只能执行此操作。
答案 2 :(得分:0)
您目前正在做的是让远程服务器执行PHP文件,然后您正在阅读已解析的内容 - 与浏览器相同。所以你得到(大概)HTML,而不是PHP代码。
如果远程代码不需要因任何原因(例如安全性)保密,您可以让远程服务器为您提供PHP源代码。最简单的方法是将文件重命名为aaa.txt
,因此不会将其传递给PHP解释器。