2010-10-13 72 views
2

是否有可能调用另一个域上的另一个网站上的文件中找到的PHP函数?例如,我知道要从同一个域中的另一个文件(比如在aaa.php中找到函数aaa())调用一个PHP函数,我只需要简单地这样做(有一些简化假设):从不同域调用PHP函数

include_once('aaa.php'); 
aaa(); 

我试图做类似的东西,如:

include_once('http://othersite/aaa.php'); 
aaa(); 

我不能得到这个工作(页面似乎负荷罚款,没有错误消息,但功能不执行)。我试过require(),这给了我一个空白的屏幕。我也没有成功与fopen。

如果可以做到这一点,我该怎么做?

回答

0

你现在正在做的是让远程服务器执行PHP文件,然后你正在阅读解析的内容 - 就像浏览器一样。所以你得到(可能是)HTML,而不是PHP代码。

如果因为任何原因(例如安全性)不需要将远程代码保密,您可以让远程服务器为您提供PHP源代码。最简单的方法是将文件重命名为aaa.txt,这样它就不会被传递给PHP解释器。

0

只有当其他服务器设置为将PHP文件作为源文件时才能执行此操作 - 即不执行它们。

6

includerequire(以及它们的变体_once)取一个本地文件系统路径作为其参数。域名与它无关。

是的,你也可以在那里放一个URL(如果你打开了fopen包装器),但是PHP只会下载文件并尝试执行它。换句话说,为了这个工作,如果你在浏览器中输入了http://othersite/aaa.php,它应该显示PHP源代码,而不是处理它的结果。

当传递一个URL到include \ require时,PHP不能做任何比浏览器更多的事情。这是在othersite网络服务器的摆布。如果它不返回PHP代码,那么PHP就无法实现它。