调用另一个lagnauge中的函数


Calling a function in another lagnauge

我在php中编写了一个程序,它几乎完成了它需要做的所有事情,但有一点我需要使用python使用mechanize库编写的函数,这两个脚本都将托管在同一台服务器上。

我最初的想法是进行一个CURL调用,其中包含从php脚本到python脚本的任何参数,然后使用CURL将函数的结果再次返回到php脚本。

我对编程很陌生,在做这样的事情时,我不确定最好的约定,我使用CURL的设置工作流是通常的方式吗?还是有其他方式?

如果你需要能够独立地分发PHP代码和Python代码,将它们部署在单独的服务器上,等等,那么这是合理的——你将Python代码作为一个web服务,让PHP代码调用该web服务,你就完成了。


但是,如果Python脚本总是在本地运行,那么将其作为程序运行通常会更容易——向其传递命令行参数和/或标准输入,并检索其标准输出。PHP有几种不同的方法——systempopenexecpassthru——它们都有不同的优点和缺点。

例如,使用exec,只需对每个参数调用escapeshellarg,将它们放在一个带有脚本路径的空格分隔字符串中,调用exec,即可返回结果。

您可以始终在php中使用exec函数(http://php.net/function.exec)如果脚本在同一台服务器上。

但是,请确保您知道自己在做什么,因为该函数功能强大,如果使用错误,可能会非常糟糕。

我不知道这有多好(我还没有亲自尝试过),但你可以尝试一下:

  • PHP中的Python