用另一种语言调用函数

时间:2013-12-13 23:23:05

标签: php python curl cross-language

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

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

我对编程很新,并且在做这样的事情时不确定最好的约定,是我使用CURL的setout工作流程,通常的方法是这样做还是有另一种方式?

3 个答案:

答案 0 :(得分:2)

如果您需要能够独立分发PHP代码和Python代码,将它们部署在不同的服务器上,那么这是合理的 - 您将Python代码作为Web服务,使PHP代码调用Web服务,你已经完成了。


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

例如,对于exec,您只需在每个参数上调用escapeshellarg,将它们放在一个以空格分隔的字符串中,并带有脚本路径,调用exec,然后您得到结果。

答案 1 :(得分:1)

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

但请,确定你知道自己在做什么,因为这个功能很强大,如果使用错误的方式可能会非常讨厌。

答案 2 :(得分:0)

我不知道这有多好(我没有亲自尝试过),但你总是可以试试这个: