从不同的域调用PHP函数

时间:2010-10-13 21:16:19

标签: php

是否可以调用另一个域名不同的网站上的文件中找到的PHP函数?

例如,我知道从同一个域中的另一个文件调用PHP函数(比如在aaa.php中找到的函数aaa())我只需要这样做(只有一些简化的假设):

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

我尝试过类似的事情,例如:

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

我无法使其工作(页面似乎加载正常,没有错误消息,但函数不执行)。我试过require(),这给了我一个空白的屏幕。我对fopen也没有成功。

如果可以这样做,我该怎么办?

3 个答案:

答案 0 :(得分:6)

includerequire(以及他们的_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解释器。