繁体   English   中英

从不同的域调用PHP函数

[英]Calling PHP functions from different domains

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

例如,我知道要从同一域中的另一个文件调用PHP函数(例如在aaa.php中找到函数aaa()),我只需要简单地执行此操作(有一些简化的假设):

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

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

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

我无法使它正常工作(页面似乎可以正常加载,没有错误消息,但是该函数无法执行)。 我试过了require(),这让我空白了。 我也没有用fopen取得成功。

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

includerequire (及其_once变体)将本地文件系统路径作为其参数。 域与它无关。

是的,您也可以在其中放置一个URL(如果启用了fopen包装器),但是PHP只会下载该文件并尝试执行它。 换句话说, http://othersite/aaa.php此方法起作用,如果您在浏览器中输入了http://othersite/aaa.php ,它应该显示PHP源代码,而不是处理它的结果。

当传递include \\ require的URL时,PHP只能执行浏览器以外的操作。 它是由其他othersite上的Web服务器othersite 如果它不返回PHP代码,则PHP无法获得它。

仅当其他服务器设置为将PHP文件作为源提供服务时(即不执行它们),才可以执行此操作。

您当前正在做的是让远程服务器执行PHP文件,然后读取解析的内容-与浏览器相同。 因此,您大概会得到HTML,而不是PHP代码。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM